首页 > 其他分享 >vue侦听器

vue侦听器

时间:2023-04-04 11:47:14浏览次数:41  
标签:username vue newVal 侦听器 oldVal 侦听 id

侦听data里的数据变化:

方法格式:

<script>     const vm=new Vue({         el:"#app",         data:{             username:"张三",             userList:[                 {"id":1,"name":"张三"},                 {"id":2,"name":"李四"}             ],             info:{                 username:'admin'             }         },         //所有侦听都定义到watch里         watch:{             //本质是个函数,要监视那个数据的变化就把数据名作为方法名             username(newVal,oldVal){                 console.log(newVal,oldVal);             },     //如果要侦听的是对象的子属性的变化,则必须包裹一层单引号         'info.username'(newVal){                 console.log(newVal)               }         }         }) </script>

缺点1:无法在刚进入页面的时候,自动触发
缺点2:如果侦听的是一个对象,如果对象中的属性发生了变化,不会触发侦听器

对象格式

<script>     const vm=new Vue({         el:"#app",         data:{             username:"张三",             userList:[                 {"id":1,"name":"张三"},                 {"id":2,"name":"李四"}             ],             info:{                 username:'admin'             }         },         //所有侦听都定义到watch里         watch:{             //定义对象格式的侦听器             username:{                 handler(newVal,oldVal){                     console.log(newVal,oldVal);                 },                 //默认选项是false,作用:控制侦听器刚进页面是否自动触发一次                 immediate:true             },             userList:{                 handler(newVal,oldVal){                     console.log(newVal,oldVal);                 },                 //默认为false,开启深度监听,只要对象中任何一个属性变化了,都会触发对象的侦听器                 deep:true             }         }         }) </script>

好处1:可以通过immediate选项,让侦听器自动触发
好处2:可以通过deep选项,让侦听器深度监听对象中每个属性的变变化

标签:username,vue,newVal,侦听器,oldVal,侦听,id
From: https://www.cnblogs.com/wmqxlt/p/17285881.html

相关文章

  • VSCode打开Vue项目
    打开VSCode                                                                       打开文件夹并选择vue的文件夹  ......
  • 4.15 vue中watch computed
    在Vue.js中,computed是一种计算属性,它能够根据依赖的数据动态计算出一个新的值。computed属性可以定义为一个函数,该函数返回需要计算的值。当它所依赖的数据发生变化时,Vue.js会自动重新计算这个值并将其更新到组件上。与computed对应的还有另外两种常见的属性,分别是meth......
  • vue下拉框联动 数据清空后,赋值无效
     1.问题描述:规格型号与设备类型联动,当选择“规格型号”后,清空“设备类型”选择框内容,选择数据赋值时失效。   2.解决 添加this.$forceUpdate();进行强制渲染,效果实现。 getSecondName(){   this.$forceUpdate();  }, ......
  • vue3+vite 解决本地调用时跨域请求
    1、config配置文件中,axios默认请求地址;改为"/api",否则还是请求环境变量中的地址; 2、vite.config.ts文件中做如下配置:  server:{  open:true,//启动项目自动弹出浏览器  port:8081,//启动端口  cors:true,  proxy:{   "/api":{  ......
  • vue做播放器和进度条
    <template><video-playerclass="video-playervjs-custom-skin"ref="videoPlayer":playsinline="true":options="playerOptions"@play="onPlayerPlay($event)"@pause="onP......
  • 【vue】vue3中的动画
    vue版本:vue3不过是控制动画放到了标签内控制在上图中,是绑定到了stylevue中关于动画的封装入场出场动画进入开始状态(时间点).v-enter-from{}动态效果(时间段).v-enter-active{}终止状态(时间点).v-enter-to{}.v-leave-from{}.v-leave-active{}.v-lea......
  • vue脚手架创建与环境安装
    1.安装Node.jsDownload|Node.js   在这里......
  • vue指令之属性指令
    目录属性指令示例属性指令标签上的属性可以绑定变量,变量变化,属性也会变化#什么是属性?比如:href/src/name/value/class/style...语法:v-bind:属性名="变量名"简写:属性名="变量名"示例<body><divid="app"><av-bind:href="url">点我</a>......
  • vue指令系统之文本指令
    目录什么是指令系统文本指令a-text指令a-html指令v-showv-if什么是指令系统指令系统是VUE提供的,语法为v-xx写在标签属性中的,系统都称之为指令文本指令文本指定必须写在标签属性上文本指定的值必须为变量,或者表达式v-xx#必须是一个标签属性<pv-text="a_url"></......
  • VUE插值语法
    目录基本使用基本使用在body中创建一个标签,一般使用div,定义好id后,在script中进行定义,在前台使用{{变量}}的形式进行调用,语法如下:<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>Title</title><scriptsrc="./......