vue中的computed(计算属性)和watch(监听属性)的特点,以及深度监听
//计算属性是根据data中已有的属性,计算得到一个新的属性,
<div>全名:{{fullName}}</div>
创建计算属性通过computed关键字,它是一个对象
计算属性是基于他们的依赖进行缓存的,computed是对data中的一些数据进行操作,避免在标签中进行操作,
computed:{
fullName(){
return this.firstName+lastName
}
} 此时的fullName为一个自定义的名称,代表了一个计算的封装函数,此时代表了两个字符串的拼接和,
而不是直接在页面上进行计算,计算属性就起到了这个作用。
watch 监听属性
watch属性和computed属性类似,是为了监听data中的数据的变化,只要监听的数据一发生变化,它就能执行相应的函数, watch属性的名字必须为data中对应数据的名字 data中有firstName="" lastName="" watchFullName=""
参数newVal 和oldVal分别是新值和旧值
watch:{
firstName(newVal,oldVal){
this.watchFullName=newVal+this.lastName
}
lasttName(newVal,oldVal){
this.watchFullName=this.firstName+oldVal
}
} 下面这一段是对路由参数的监听,这是一个组件,watch可以实时的获取到参数的值。
var shop=Vue.component('shop',{
template:`
<div>要显示的商品编号{{$route.params.id}}</div>
`,
// mounted(){
// console.log(this.$route.params)
// },
// 通过监听来实现动态获取路由参数
watch:{
$route(to,from){
console.log(to.params)
console.log(from.params)
}
}
})
computed 和watch对比来看的话虽然都能实现相同的功能,但是在一些相类似的应用场景中,一般都用computed 因为computed(计算属性)有一个缓存机制,如果后来的代码依赖于计算属性所得出的值,那么后来的计算值将会取自第一次计算所得值的缓存,这样就避免了一个值多次进行计算,影响代码的执行效率,
watch 的应用场景为一些异步的操作。
深度监听
深度监听是为了监听对象中的数据变化
data:{
user{
name:"zhangsan"
}
} user:{
handler(newVal,oldVal){
console.log(newVal.name)
//这样就可以打印一个新的user对象中的name值
},
deep:true
}
vue中的computed(计算属性)和watch(监听属性)的特点,以及深度监听的更多相关文章
- vue中为computed计算属性传参遇到的问题,已解决
首先介绍下项目背景, 需要将 dataList 中的 item.stars 属性传入 computed 返回要展示的值 部分代码如下(请不要纠结为什么这么做,数据格式确认如此): <li cla ...
- Vue中的computed属性
阅读Vue官网的过程中,对于计算属于与监听器章节的内容有点理解的不清晰:https://cn.vuejs.org/v2/guide/computed.html. 后来上网查询了资料,结合官网的说明,总 ...
- 八、Vue中的computed属性
看了网上很多资料,对vue的computed讲解自己看的都不是很清晰,今天忙里抽闲,和同事们又闲聊起来,对computed这个属性才有了一个稍微比较清晰的认识,下面的文章有一部分是转自: https: ...
- 十三、Vue中的computed属性
以下抄自https://www.cnblogs.com/gunelark/p/8492468.html 看了网上很多资料,对vue的computed讲解自己看的都不是很清晰,今天忙里抽闲,和同事们又闲 ...
- vue中methods,computed,filters,watch的总结
08.28自我总结 vue中methods,computed,filters,watch的总结 一.methods methods属性里面的方法会在数据发生变化的时候你,只要引用了此里面分方法,方法就 ...
- vue系列---理解Vue中的computed,watch,methods的区别及源码实现(六)
_ 阅读目录 一. 理解Vue中的computed用法 二:computed 和 methods的区别? 三:Vue中的watch的用法 四:computed的基本原理及源码实现 回到顶部 一. 理解 ...
- Vue中的computed和watch
看了网上很多资料,对vue的computed讲解自己看的都不是很清晰,今天忙里抽闲,和同事们又闲聊起来,对computed这个属性才有了一个稍微比较清晰的认识,下面的文章有一部分是转自: https: ...
- 详解Vue中的computed和watch
作者:小土豆 博客园:https://www.cnblogs.com/HouJiao/ 掘金:https://juejin.cn/user/2436173500265335 1. 前言 作为一名Vue ...
- Vue 中的 computed 和 methods
Vue 中的 computed 和 methods 使用 computed 性能会更好. 如果你不希望缓存,可以使用 methods 属性.
- vue中的computed 与 watch
计算属性 computed 指通过计算得来的属性,用于监听属性的变化 computed里面的函数调用的时候 不需要加() 方法里必须有一个返回值 return computed中的函数不会通过事件去触 ...
随机推荐
- PHP+nginx 启动后访问超时
场景 在Windows上, nginx配置并启动后, 访问报504超时 解决 很尴尬, php-cgi没启动 php-cgi -b
- 自动化测试 Appium之Python运行环境搭建 Part1
Appium之Python运行环境搭建 Part1 by:授客 QQ:1033553122 实践环境 Win7 Python 3.4.0 JAVA JDK 1.8.0_121 node.js8.11. ...
- Android为TV端助力:UDP协议(接收组播和单播)
private static String MulticastHost="224.9.9.98";private static int POST=19999;private sta ...
- ORA-12520 TroubleShooting
同事反馈他连接一个新搭建的测试数据库时,报"ORA-12520: TNS: 监听程序无法为请求的服务器类型找到可用的处理程序"错误,在解决他这个问题时,顺便分析.总结一下ORA ...
- python datetime操作
#datetime object转化为timestamp import datetime now = datetime.datetime.now() now_timestamp = time.mkti ...
- js坚持不懈之15:修改html内容和属性的方法
1. 修改 HTML 内容 <!DOCTYPE html> <html> <body> <p id = "change">原始内容& ...
- ubuntu18.04修改网卡名称为eth0
1.修改grub文件 vim /etc/default/grub 查找 GRUB_CMDLINE_LINUX="" 修改为 GRUB_CMDLINE_LINUX="net ...
- excel身份证验证(附带防止粘贴导致校验失效的函数)
一.检验函数 =IF(LEN(A1)=18,MID("10X98765432",MOD(SUMPRODUCT(MID(A1,ROW(INDIRECT("1:17" ...
- Pycharm 常用快捷键
常用快捷键 快捷键 功能 Ctrl + Q 快速查看文档 Ctrl + F1 显示错误描述或警告信息 Ctrl + / 行注释(可选中多行) Ctrl + Alt + L 代码格式化 Ctrl + A ...
- php 微信模板消息发送
<?php ini_set ( 'date.timezone', 'Asia/Shanghai' ); define ( 'IN_ASK2', TRUE ); $http_type = ((is ...