vue监听属性值变化,vue的监听跟计算属性的区别
本文主要介绍了Vue的监测特性,具有一定的参考价值。感兴趣的朋友可以参考一下,希望能帮到你。
目录
Vue监控属性什么是监控属性?监控属性和计算属性有什么区别?立即使用深度倾听通话摘要。
Vue监听属性
什么是监听属性?
所谓监控,就是对内置对象的状态或属性的变化进行监控和响应的反应。监控属性意味着您可以监控其他数据的变化。
监听属性和计算属性的区别?
计算是在依赖值改变后重新计算结果并更新DOM,会被缓存。
属性监视属性值,当定义的值改变时,执行相应的函数。
最主要的用途区别:
属性不能执行异步任务。一般不使用计算属性来请求服务器或者执行异步任务,因为这可能需要很长时间,我们的计算属性要实时更新。因此,这个异步任务可以通过监听属性来完成。
总之:computed能实现的,watch都能实现,computed不能实现的,watch也能实现
监听属性的使用
使用watch配置项,在配置项中写入要监控的属性。每次属性值发生变化,都会回调处理函数,还可以监控计算出的属性的变化。
例子:
监视输入框的变化
代码
模板
div class=main
me:El-input v-model= name placeholder=请输入您的姓名/el-input
1el-input v-model= friends . friend _ 1 placeholder=请输入您的名字/el-input
2el-input v-model= friends . friend _ 2 placeholder=请输入您的名字/el-input
/div
/模板
脚本
导出默认值{
data(){
返回{
名称:“浪漫共耕”,
朋友:{friend_1:张三,friend_2:李四 }
}
},
观察:{
名称:{
Handler (newvalue,oldValue) {//newvalue新值,oldValue更改前的值。
console.log(新值,旧值)
This.friends.friend_1=王五
}
},
//监视多级结构中属性的变化
friends.friend_1 :
处理程序(新值,旧值){
console.log(新值,旧值)
}
},
friends.friend_2 :
处理程序(新值,旧值){
console.log(新值,旧值)
}
},
}
};
/脚本
深度监听
当我们的对象具有多层结构时,我们要监控的对象的属性有很多,因此我们需要避免单独编写每个属性。这时候就需要深度监控了。
在监视配置中,在监视属性对象中,将配置深度设置为true,以监视多级对象或数组的内部值的变化。
观察:{
//监控多级结构中所有属性的变化
朋友:{
处理程序(新值,旧值){
console.log(新值,旧值, aa )
},
Deep:true,//打开深度监听
}
}
注意:有个问题。深度监控时,新旧值相同?
官方的解释:
当改变(不替换)一个对象或数组时,旧值将与新值相同,因为它们的引用指向同一个对象/数组。Vue不保留突变前值的副本。
是指针的变化。我的js就不能深度复制吗?这篇文章谈到了数据存储。
立即调用
与深度配置相同。
将immediate设置为true将立即触发当前处理程序回调。
观察:{
名称:{
Handler (newvalue,oldValue) {//newvalue新值,oldValue更改前的值。
console.log(新值,旧值)
This.friends.friend_1=王五
},
即时:正确
},
}
它在页面加载时执行一次,所以旧数据是未定义的。
总结
Watch属性通常可用于数据持久化、调度事件和同步/异步执行、验证格式…
本文到此为止。希望能帮到你,也希望你能多关注我们的更多内容!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。