VUE之watch与computed
来源:互联网 发布:郑州最专业seo公司 编辑:程序博客网 时间:2024/05/18 23:26
VUE之watch与computed
当时看文档的时候,文档把计算属性和观察者放在一篇讲,也看到其拿来对比。于是乎我就单纯的以为两者差不多,做项目的时候也大多用到的是计算属性,因为真的很便捷。但是最近遇到一些麻烦并回顾文档以后,发现不是我认为的那么简单。
我相信大多数网友百度到这儿的时候都用过并对computed属性略知一二了,这里解释一下大家可能没注意到的地方。
computed
data () { return { price: 12 } }, computed: { priceToStr () { return this.price + '¥' } }
例子很简单,我们只需要在模板处加入{{priceToStr }}即可显示带货币符号的价格字符串
而且,如果price发生变化,{{priceToStr }}也是跟着变化的。正如文档所说的:
计算属性是基于它们的依赖进行缓存的。计算属性只有在它的相关依赖发生改变时才会重新求值。
这里,price就是priceToStr 的相关依赖。(不理解的同学可以直接认为是vue中定义的data下的变量)
当然,计算属性还有getter和setter之类的,项目中实在是没用到。
至此,我都用的computed很爽,直到我想监听我的路由变化情况并在路由变化时把当前路由保存到sessionStorage时,发现computed不可行。
于是我想到了好像有一个跟computed的差不多的属性,然后重新看了文档。很奇怪文档中为了警戒大家不要乱用watch,拿了一个例子告诉大家用watch很笨重。但其实只是那个例子更适合computed罢了。
watch
watch是真的能起到监听的效果,来看我实现的例子
watch: { // 监听路由变化 发生改变后 调用保存路由的方法 '$route': 'changeStoreRoute' },
changeStoreRoute是method中的一个普通方法,在路由变化时果真调用。
监听器,看起来是键值形式,键可以是某个变量名,也可以是表达式(表达式需要加引号);值可以是某个方法名,也可以是回调函数,甚至也可以是个对象。(对象的情况小的没试过,同学们可以尝试下)
但其实watch干我这个事有点屈才了,watch真正强在他可以在数据变化时做一些异步处理或者开销大的操作,这是computed所不能及的。
- VUE之watch与computed
- vue computed 与 watch 区别
- Vue.js之计算属性computed与$watch
- Vue.js学习 Item5 -- 计算属性computed与$watch
- Vue.js学习 Item5 -- 计算属性computed与$watch
- Vue学习之computed 与 method
- Vue filter computed watch 的用法
- vue中computed和watch区别
- vue中computed 和 watch的异同
- Vue学习之computed
- vue开发:vue中computed 和 watch的异同
- Vue之计算属性Computed
- vue中watch和computed属性作用及区别
- Vue.js的computed和watch用法及区别
- vue 计算属性computed和观察watch 和方法methods
- vue.js2.0关于computed、methods、watch、created的区别
- vue--computed
- vue之watch用法
- ListView点击后不响应
- 定时器详解
- Systemd 入门教程:命令篇
- iOS之Header Search Paths和User Header Search Paths和library searchpath
- XML文档 标签解读
- VUE之watch与computed
- codeforces 894D
- 《Android学习笔记》Android设计模式之单例模式
- 编程计算并输出1到n之间所有数的平方和立方
- spring+springmvc+hibernate+jsp框架组合练习
- Opendaylight 之 HelloWorld
- IDEA配置Git
- leetcode 295. Find Median from Data Stream
- sql: 去除数据库表中tab、空格、回车符等特殊字符的解决方法 去除tab、空格、回车符等使用replace语句 按照ASCII码, SELECT char(64) 例如64 对应 @,则se