vue事件处理机制,vue事件写法

  vue事件处理机制,vue事件写法

  本文主要详细介绍Vue事件的基本操作。本文中的示例代码非常详细,具有一定的参考价值。感兴趣的朋友可以参考一下,希望能帮到你。

  :

目录

   1.事件的基本操作1.1v-on1.1.1v-on小型情况1.2事件修饰符1.2.1事件修饰符代码分析1.3键盘事件1.4计算属性1.5监视器属性1.5.1手表和计算之间的差异摘要

  

1. 事件的基本操作

  

1.1 v-on

  功能:用指定的事件名称绑定回调函数。

  标准书写:

  v-on:click=xxx

  V-on:keyup=xxx(参数)

  v-on:keyup.enter=xxx

  简单写作:

  @click=xxx

  @keyup=xxx

  @keyup.enter=xxx

  

1.1.1 v-on的小案例

  div id=root

  !-点击按钮时弹出需求。同学你好!-

  H1欢迎学习{ { name } }

  !-v-on: XXX可以缩写为:@ XXX-

  按钮v-on:Click= Bt n1 Click me to learn(无参考)/按钮

  button @click=btn2(你好!同学、$event)点击我学习(传参考)

  //如果需要传参数,后面加()就行了,参数都写在里面了。

  /div

  脚本

  /*

  回调需要写在方法对象中,并且最终会在vm上。

  方法中配置的功能不使用箭头功能。

  方法中配置的函数,指向vm或组件实例化对象。

  */

  Vue.config.productionTip=false

  var vm=new Vue({

  el: #root ,

  数据:{

  名称:“清华大学”

  },

  方法:{

  btn1() {

  警觉(你好,同学!)

  },

  btn2(x,y,event) {

  console.log(x,y);

  console . log(event . target . innertext);

  警觉(你好,同学!)

  }

  }

  })

  /脚本

  

1.2 事件修饰符

  Vue中有六个事件修饰符-prevent:防止默认行为-stop:禁止冒泡-once:事件只触发一次-capture:使用事件捕获模式-self:只有even.target指向的操作元素才能触发事件-passive:让事件的默认行为立即执行体

  div id=root

  !- 1.防止:防止默认行为-

  a href= 3359 www.bilibili.com/@ Click . prevent= prevent 单击我进入哔哩哔哩/a

  整点

  !- 2.停止:不要冒泡-

  div @click=stop class=div1

  Button @click.stop=stop 单击我以触发事件/按钮

  /div

  整点

  !- 3.一次:事件只触发一次-

  我只能触发一次/button

  整点

  !- 4.捕获:使用事件捕获模式-

   div class= box 1 @ click . capture= capture(1)

  div1

   div class= box 2 @ click= capture(2)

  div2

  /div

  /div

  整点

  !-5.self:只有even.target指向的操作元素才能触发事件。

  相当于满足两个条件。

  -1.event.target必须指向self修饰的元素。

  -2.触发器也必须是这个元素

  从某种意义上说,它相当于禁止冒泡,因为冒泡会触发上述事件。

  但是event.target没有指向这个元素。

  -

  div class= box 3 @ click . self= self

  Button @click=self 单击我/button

  /div

  整点

  !- 6.passive:让事件的默认行为立即执行。

  Scroll:表示滚动条滚动时,滚动条变化时会触发,滑到底部后就不能触发了。

  滚轮:是指鼠标滚轮滚动,滚动一次就触发一次,滑动到底还是可以触发的。

  -

  ul style= overflow:auto;高度:100像素;@scroll.passive=passive

  李style= height:600 px;/李

  /ul

  !-7.如果你想使用多个修饰符,你可以使用链式形式-

  !-你需要停止冒泡,禁止默认行为-

  div @click=stop class=div1

  a @ Click . stop . prevent= stop href= 3359 www . Baidu . com 点击我进入/a

  /div

  /div

  

1.2.1 事件修饰符代码解析

  html代码

  身体

  div id=root

  !- 1.防止:防止默认行为-

  a href= 3359 www.bilibili.com/@ Click . prevent= prevent 单击我进入哔哩哔哩/a

  整点

  !- 2.停止:不要冒泡-

  div @click=stop class=div1

  Button @click.stop=stop 单击我以触发事件/按钮

  /div

  整点

  !- 3.一次:事件只触发一次-

  我只能触发一次/button

  整点

  !- 4.捕获:使用事件捕获模式-

   div class= box 1 @ click . capture= capture(1)

  div1

   div class= box 2 @ click= capture(2)

  div2

  /div

  /div

  整点

  !-5.self:只有even.target指向的操作元素才能触发事件。

  相当于满足两个条件。

  -1.event.target必须指向self修饰的元素。

  -2.触发器也必须是这个元素

  从某种意义上说,它相当于禁止冒泡,因为冒泡会触发上述事件。

  但是event.target没有指向这个元素。

  -

  div class= box 3 @ click . self= self

  Button @click=self 单击我/button

  /div

  整点

  !- 6.passive:让事件的默认行为立即执行。

  Scroll:表示滚动条滚动时,滚动条变化时会触发,滑到底部后就不能触发了。

  滚轮:是指鼠标滚轮滚动,滚动一次就触发一次,滑动到底还是可以触发的。

  -

  ul style= overflow:auto;高度:100像素;@scroll.passive=passive

  李style= height:600 px;/李

  /ul

  !-7.如果你想使用多个修饰符,你可以使用链式形式-

  !-你需要停止冒泡,禁止默认行为-

  div @click=stop class=div1

  a @ Click . stop . prevent= stop href= 3359 www . Baidu . com 点击我进入/a

  /div

  /div

  js代码

  脚本

  Vue.config.productionTip=false

  新Vue({

  el: #root ,

  数据:{

  },

  方法:{

  防止(){

  Alert(“禁止默认行为”);

  },

  stop(){

  警报(“无冒泡”)

  },

  once(){

  警报(“它只能被触发一次”)

  },

  捕获(x){

  Alert(现在是捕获模式 x)

  },

  自我()

  {

  警报(“自我”)

  },

  被动(){

  for(设索引=0;指数1000;索引){

  console.log(1 )

  }

  }

  }

  })

  /脚本

  /body

  

1.3 键盘事件

  以下项目的常用密钥别名:

  1.正常使用

  示例:@keyup.enter=xxx

  回车回车。

  -删除删除

  -退出esc

  -空间空间

  -上去

  -趴下

  -左左

  -对对

  2.特殊键

  系统修改键:

  -ctrl、shift、alt、meta(即窗口键)

  -换行标签(必须与keydown一起使用)

  -与keyup一起使用,当修饰键被按下时,另一个键被按下,然后在事件可以被触发之前释放另一个键。

  -当与keydown一起使用时,事件将被直接触发。

  3.如果要绑定其他键,可以使用该键的原始键值(名称)进行绑定。

  4.您可以自定义设置密钥别名Vue.config.keyCodes自定义密钥名称=密钥值

  具体案例

  div id=root

  H1欢迎学习{{name}}/h1

  输入类型=text @keyup=keyboard

  芭芭拉

  input type= text @ keyup . huiche= keyboard

  芭芭拉

  input type= text @ keyup . ctrl . y= keyboard

  /div

  脚本

  Vue.config.productionTip=false

  vue . config . key codes . huiche=13//定义了别名。

  var vm=new Vue({

  el: #root ,

  数据:{

  名称:“Vue”

  },

  方法:

  {

  键盘(事件){

  //console . log(event . key code);关键编码

  //console . log(event . key);密钥的名称

  console . log(event . target . value);

  }

  }

  })

  /脚本

  

1.4 计算属性(computed)

  1.如何在页面中使用:=={ {方法名}}==显示计算结果。

  2.定义:要使用的属性/变量不存在,需要通过现有属性计算。

  3.原理:底层是Object.defineProperty方法提供的getter和setter。

  4.4.get函数执行的时间:

  (1)它将在第一次读取时执行一次。

  (2)当依赖数据发生变化时,将再次被调用

  5.相比方法的优点,里面有缓存机制(复用),会更高效,调试更方便。

  6.如果要修改计算属性,必须编写集合函数来响应修改,计算所依赖的数据在集合中也会发生变化。

  7.特别要注意的一点:以下面的例子为例:get函数的返回值将作为fullname的值返回,在控制台中可以看到fullname:xxx以这种形式呈现。

  8.这在8.computed中指向vm

  9.缩写形式:基本要求是不用set就可以缩写。请注意,调用时不要写fullname()。

  div id=root

  姓氏:输入类型= text v-model= firstname

  芭芭拉

  名称:输入类型= text v-model=姓氏

  !-第一种书写方法使用插值语法-

  !- h3全名:{ {名字. slice (0,3)} }-{ {姓氏}}/H3-

  !第二种写作方式使用方法

  !- h3全名:{ {全名()}}/H3-

  !-第三种写法使用computed(计算属性)-

  H3:{ {全名}}/h3

  /div

  脚本

  Vue.config.productionTip=false

  让vm=new Vue({

  el: #root ,

  数据:{//属性

  名字:张,

  姓氏:三,

  },

  //方法:

  //{

  //fullname() {

  ////这里指向vm

  //返回this.firstname.slice(0,3) - this.lastname

  //}

  //}

  计算值:{

  全名:{

  /*

  1.Vue已被配置为将其指向虚拟机。

  2.有人读fullname的时候会调用get,但是get只执行一次,因为Vue做了一件事,就是缓存。当它被执行一次后,如果数据被读取,它将走缓存的道路。

  3.return的返回值会作为fullname的值,fullname也会被抛出给vm。

  (全名:“张三”)

  */

  get() {

  返回this.firstname - this.lastname

  },

  设置(值){

  //只有在修改fullname时才会调用set。

  Var arr=value.split(-) //根据指定的字符串拆分为数组

  this.firstname=arr[0]

  this .姓氏=arr[1]

  }

  /*

  缩写形式:基本要求是不用set就可以缩写。

  调用时注意不要写fullname()。这很特别。

  计算值:{

  Fullname(){ //相当于全名:function () {}

  返回this.firstname - this.lastname

  }

  }

  */

  }

  }

  })

  /脚本

  

1.5 监视属性(watch)

  1.当被监控的属性发生变化时,自动调用回调函数执行相关操作。

  2.监控属性必须存在才能被监控。

  3.监视属性的两种写法:

  (1)在新的Vue中配置手表。

  (2)通过虚拟机进行监控。$手表

  4.4.watch中的处理函数指向vm

  div id=root

  H1今天真的很{ { weather } }

  按钮@click=change 切换天气/按钮

  h3的值为:{{a}}/h3。

  !-你可以在里面写简单的代码-

  按钮@click=a Click我让一个1/按钮

  /div

  脚本

  Vue.config.productionTip=false

  让vm=new Vue({

  el: #root ,

  数据:{

  标志:正确

  },

  计算值:{

  天气(){

  把这个还回去。旗子?酷:热

  }

  },

  方法:{

  更改(){

  返回this.flag=!这个. flag

  }

  },

  观察:{

  标志:{

  //第一个参数表示修改后的值,第二个参数表示修改前的值。

  处理程序(新值,旧值){

  Console.log(标志已修改);

  },

  Immediate:true,//一上来就执行一次。

  Deep:true //表示深度监控

  }

  }

  })

  vm。$watch(天气,{

  即时:真的,

  处理程序(新值,旧值){

  Console.log(“天气已被修改”)

  }

  })

  

1.5.1 watch和computed的区别

  watch和computed的区别是:

  1.computed不一定能完成watch能完成的功能,但是computed能做到的,Watch也能做到。

  2.computed依赖于return的返回值(getter),所以不能完成异步任务,而watch可以

  3 .手表是通过自己写代码修改的。

  4.在学Vue当中有两个很重要的原则:

  vue管理的所有函数都要写成普通函数,因为这是vue或者组件的实例化对象。所有不被Vue管理的函数都要写成箭头函数(Ajax的回调函数,timer的回调函数,Promise的回调函数),因为这是Vue或者组件div id=root 的实例化对象

  !-用手表写名字的大小写-

  姓氏:输入类型= text v-model= firstname

  芭芭拉

  名称:输入类型= text v-model=姓氏

  H2全名:{ {全名}}/h2

  /div

  脚本

  //要求:希望1s后显示全名。

  Vue.config.productionTip=false

  让vm=new Vue({

  el: #root ,

  数据:{

  名字:张,

  姓氏:三,

  全名:“张三”

  },

  观察:{

  名字:{

  处理程序(新值){

  console . log(this);//虚拟机

  /*

  这里使用arrow函数的目的是让这一点指向vue。

  在这个时候,没有这个,所以他看着外面,这个外面的处理程序。

  它指向虚拟机,所以这个定时器也指向虚拟机。

  */

  SetTimeout(()={//这里如果用的是普通函数this,它指向的是窗口。

  console . log(this);//虚拟机

  this . full name=new val - this . last name

  }, 1000);

  }

  },

  姓氏:{

  处理程序(新值){

  setTimeout(()={

   this . full name=this . first name - new val

  }, 1000);

  }

  }

  }

  })

  /脚本

  

总结

  这就是我们今天要讲的内容。本文只介绍Vue的一些基本事件的操作,希望对大家有帮助!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: