码迷,mamicode.com
首页 > 其他好文 > 详细

Vue事件和属性

时间:2017-12-14 18:00:23      阅读:291      评论:0      收藏:0      [点我收藏+]

标签:function   inpu   alias   bind   修饰符   set   opp   引用   click   

1. 事件

 

1.1 事件简写
  • v-on:click=""
  • 简写方式 @click=""
        <button v-on:click="show">点我</button>
        <button @click="show">点我</button>

 

1.2 事件对象$event
  • 包含事件相关信息,如事件源、事件类型、偏移量
  • target、type、offsetx
//js  methods:{}

print(e){
   // console.log(e);
    console.log(e.target.innerHTML); //DOM对象
    console.log(this);
}
<button @click="print($event)">Click Me</button>

 

1.3 事件冒泡
  • 阻止事件冒泡:
  • a)原生js方式,依赖于事件对象
  • b)vue方式,不依赖于事件对象
  • @click.stop

 

1.4 事件默认行为
  • 阻止默认行为:
  • a)原生js方式,依赖于事件对象
    <script>
        window.onload=function(){
            let vm=new Vue({
                el:#itany,
                methods:{ 
                    show(){
                        console.log(111);
                        // e.stopPropagation();
                    },
                    print(){
                        console.log(222);
                    },
                    write(){
                        console.log(333);
                    },
                    study(){
                        console.log(444);
                        // e.preventDefault();
                    }
                }
            });
        }
    </script>

-----------------------------------------------------------------------------------------
<div id="itany"> <div @click="write"> <p @click="print"> <!-- <button @click="show($event)">点我</button> --> <button @click.stop="show">点我</button> </p> </div> <hr> <!-- <a href="#" @click="study($event)">俺是链接</a> --> <a href="#" @click.prevent="study">俺是链接</a> </div>

 

1.5 键盘事件
  • 回车:@keydown.13 或@keydown.enter
  • 上:@keydown.38 或@keydown.up
  • 默认没有@keydown.a/b/c...事件,可以自定义键盘事件,也称为自定义键码或自定义键位别名
    <script>
        /**
         * 自定义键位别名
         */
        Vue.config.keyCodes={
            a:65,
            f1:112
        }

        window.onload=function(){
            let vm=new Vue({
                el:#itany,
                methods:{ 
                    show(e){
                        console.log(e.keyCode);
                        if(e.keyCode==13){
                            console.log(您按了回车);
                        }
                    },
                    print(){
                        // console.log(‘您按了回车‘);
                        // console.log(‘您按了方向键上‘);
                        console.log(11111);
                    }
                }
            });
        }
    </script>

-------------------------------------------------------------------------------------------------------
<div id="itany"> <!-- 键盘事件:@keydown、@keypress、@keyup --> <!-- 用户名:<input type="text" @keydown="show($event)"> --> <!-- 简化按键的判断 --> <!-- 用户名:<input type="text" @keydown="show($event)"> --> <!-- 用户名:<input type="text" @keydown.13="print"> --> <!-- 用户名:<input type="text" @keydown.enter="print"> --> <!-- 用户名:<input type="text" @keydown.up="print"> --> 用户名:<input type="text" @keydown.f1="print"> <!-- 事件修饰符 --> <button @click.once="print">只触发一次</button> </div>

 

1.6 事件修饰符
  • .stop - 调用 event.stopPropagation()。
  • .prevent - 调用 event.preventDefault()。
  • .{keyCode | keyAlias} - 只当事件是从特定键触发时才触发回调。
  • .native - 监听组件根元素的原生事件。
  • .once - 只触发一次回调。

 

2. 属性
 
2.1 属性绑定和属性的简写
  • v-bind 用于属性绑定, v-bind:属性=""
  • 属性的简写:
  • v-bind:src="" 简写为 :src=""
    <script>
        window.onload=function(){
            let vm=new Vue({
                el:#itany,
                data:{
                    url:https://ss0.bdstatic.com/5aV1bjqh_Q23odCf/static/superman/img/logo/bd_logo1_31bdc765.png,
                    w:200px,
                    h:100px
                }
            });
        }
    </script>

----------------------------------------------------------------------

<div id="itany"> <!-- <img src="{{url}}"> --> <!-- 可以直接访问vue中的数据,不需要使用{{}} --> <!-- <img v-bind:src="url"> --> <img :src="url" :width="w" :height="h"> </div>

 

2.2 class和style属性
  • 绑定class和style属性时语法比较复杂:
<script>
        window.onload=function(){
            let vm=new Vue({
                el:#itany,
                data:{
                    bb:aa,
                    dd:cc,
                    flag:true,
                    num:-2,
                    hello:{aa:true,cc:true},
                    xx:{color:blue,fontSize:30px},
                    yy:{backgroundColor:#ff7300}
                }
            });
        }
    </script>
    <style>
        .aa{
            color:red;
            font-size:20px;
        }
        .cc{
            background-color:#ccc;
        }
    </style>    

--------------------------------------------------------------------------------- <div id="itany"> <!-- class属性 --> <!-- <p class="aa">南京网博</p> --> <!-- 可以访问,普通css方式 --> <!-- <p :class="aa">南京网博</p> --> <!-- 不可以,Vue的属性绑定时不能直接css样式 --> <!-- 方式1:变量形式 --> <!-- <p :class="bb">南京网博</p> --> <!-- 方式2:数组形式,同时引用多个 --> <!-- <p :class="[bb,dd]">南京网博</p> --> <!-- 方式3:json形式,常用!!! --> <!-- <p :class="{aa:true,cc:flag}">南京网博</p> --> <!-- <p :class="{aa:num>0}">南京网博</p> --> <!-- 方式4:变量引用json形式 --> <!-- <p :class="hello">南京网博</p> --> <!-- style属性 --> <p :style="[xx,yy]">itany</p> </div>

 



Vue事件和属性

标签:function   inpu   alias   bind   修饰符   set   opp   引用   click   

原文地址:http://www.cnblogs.com/yulingjia/p/8038657.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!