前端小白学习Vue.js心得分享

一,事件修饰符

事件修饰符有很多种类,在我们Vue.js官网跟我们列出来了很多修饰符,再加上我自己在网上搜的一些修饰符,我在这里全列出来供大家参考:
1.stop:调用event.stopPropagation() 停止事件发生
2.prevent:调用event.preventDefault()阻止默认事件发生
3.capture:添加事件侦听器时使用capture模式
4.self:只当事件是从侦听器绑定的元素本身触发时才触发回调
5.{keyCode | keyAlias}:只当事件是从特定键触发时才触发回调
6.native:监听组件根元素的原生事件
7.once:只触发一次回调
8.left:只当点击鼠标左键时触发
9.right:只当点击鼠标右键时触发
10.middle:只当点击鼠标中键时触发
11.passive:以{passive: true}模式添加侦听器

注:上面这些修饰符也有我对其自己理解的意思,并不代表官方认可,仅供参考

那么现在我们来一起交流一下什么是事件修饰符,在我们进入正题之前,我们先写一个鼠标事件(mousemove)那么代码我们还是紧跟着上一篇文章写下来,我们先创建一个div容器,然后我们在给一些简单的样式

<body>
<div id="app-vue">
          <button v-on:click="add(1)">涨一岁</button>
          <button v-on:click="bdd(10)">减一岁</button>
          <p> 我今年{{age}}</p>
    <div id="xy" v-on:mousemove="updateXY">{{x}},{{y}}</div>
</div>
</body>
#xy{
    width: 500px;
    padding: 200 px 20 px;
    text-align: center;
    border: 1px solid black;
    height: 500px;
    }
new Vue({
        el:"#app-vue",
        data:{ 
             age:22,
             x:0,
             y:0
},
        methods:{
             add:function(inc){
                   this.age+=inc; 
},
             bdd:function(dec){
                   this.age-=dec;
},
             updateXY:function(event){
                  //console.log(event);
                  this.x = event.offsetX;
                  this.y = event.offsetY;
}
}
})

上面的代码就是我们的鼠标事件那么上面的代码怎么解释呢,v-on:mousemove="updateXY"这个代码就是我们的鼠标移动事件,我们想要的结果就是,当我们鼠标移动到div这个容器里面的时候,我们会看到容器里面的 X Y会随着我们鼠标的移动而改变他们的值,既然我们绑定了这个鼠标事件,我们就要给他一个对应的值和方法,我们在data里面设置了x=0 y=0 也就是默认值,那么在我们方法里面就要获取我们鼠标移动到div容器的值,并且传输给我们的x 和 y
那么我们首先获取这个值console.log(event)我们在console里面可以看到,当我们鼠标移动到div容器里面的时候,会有很多数值,我们随便点开一个会看到有
offsetXoffsetY这两个属性,这两个属性后面的数字就是我们想要的x和y的值,那么我们就要把这个值赋予给x和ythis.x = event.offsetX this.y = event.offsetY这两个代码就是给x和y赋值的方法。
这时我们再回到页面中我们鼠标移动到div容器里面的时候我们会看到x和y的值会随着我们鼠标的移动而变化,这篇文章我们讲的是事件修饰符,那么我们刚刚说过,x和y的值会随着我们鼠标的移动而改变,当我们鼠标移动到某个地方的时候他的值不在改变怎么办呢,我们在JS里面有说过阻止冒泡事件,那么我们在div里面给他一个span的标签,我们鼠标移动到span上面希望有一个事件发生,说简单点x和y值停止运算,那我们也要给span标签一个v-on:mousemove=" "这个方法,我们取名为“stopmoving”,名字取号了我们就要写对应的方法,我们要想阻止这个冒泡事件我们需要拿到event这个对象,我们就要event.stopPropagation(),这样的话我们就可以阻止这个冒泡事件了。

new Vue({
        el:"#app-vue",
        data:{ 
             age:22,
             x:0,
             y:0
},
        methods:{
             add:function(inc){
                   this.age+=inc; 
},
             bdd:function(dec){
                   this.age-=dec;
},
             updateXY:function(event){
                  //console.log(event);
                  this.x = event.offsetX;
                  this.y = event.offsetY;
},
             stopmoving:function(event){
                    event.stopPropagation()
}
}
})
<body>
<div id="app-vue">
          <button v-on:click="add(1)">涨一岁</button>
          <button v-on:click="bdd(10)">减一岁</button>
          <p> 我今年{{age}}</p>
    <div id="xy" v-on:mousemove="updateXY">
                   {{x}},{{y}}
      <span v-on:mousemove="stopmoving">在这停顿</span>
    </div>
</div>
</body>

上面是我们完整的代码,当我们进入到网页时,我们会看到x和y后面会有“在这停顿”鼠标移动到上面的时候我们会发现x和y的值就不会变化,我们在移开这个区域他又会开始变化,既然我们是事件修饰符,那我们就可以不需要这个stopmoving方法了,我们直接用事件修饰符就可以了,因为他已经帮我们包装好这个方法了,我们值需要将<span v-on:mousemove="stopmoving">这个代码改成<span v-on:mousemove.stop=" ">这个代码就行了,他们两个效果是一样的。

这是我和大家一起分享我自己所学到的一些Vue.js的基础知识,希望看到这篇文章的各位前辈多多关照,小生有哪些错误的地方希望能够指出来,也希望其他和我一样的小白能够有所帮助。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,875评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,569评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,475评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,459评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,537评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,563评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,580评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,326评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,773评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,086评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,252评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,921评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,566评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,190评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,435评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,129评论 2 366
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,125评论 2 352

推荐阅读更多精彩内容