react中数据是单向绑定的 。而vue中数据是双向绑定的 。为什么? 在react中 。主要是通过setState 去改变state的值;而在vue中 。会自动的触发set 与get 改变属性的值 。
在vue中有两个比较重要的知识点 。computed与 watch;
一、computed
computed 适用计算一些属性 。内存消耗较小依赖值不变 。这个也不会变 。
一般情况下 。我们声明的计算属性 。调取的是getter 函数 。依赖于所绑定的msg 这个值 。并随之发生变化 。
在计算属性中设置set 。调用setter 函数 。。
此时this.changesmsg会发生改变 。然后触发setter函数 。设置this.msg, 最终this.changesmsg 的值是uwuw 。
如果一个变量依赖于两个变量的 。比如是两个变量的和 。适用于这种方法 。
computed必须在实例范围内
vue中setter与getter 是想数据的双向绑定 。
二、watch
vue 通过watch选项提供了一个更通用的方法 。来响应数据的变化 。一般数据变化是执行异步或开销较大的时候 。比较适合 。
三、methods
在vue中 。还有methods这个方法 。里面一边装着vue中需要调用的一些方法 。这也可以改变数据 。不过相比computed 开销较大 。每次改变都需要调用 。
PS :最后说一点 。在vue中 。var vm = newVue({}) ,其中vm是局部变量。需要在控制台打印的话需要
文章插图
其他观点:
个人观点
要尽可能多使用计算属于 。而少用侦听器 。
计算属性能优化模板代码 。
下面是引用官方说法:
计算属性 vs 侦听属性
Vue 提供了一种更通用的方式来观察和响应 Vue 实例上的数据变动:侦听属性 。当你有一些数据需要随着其它数据变动而变动时 。你很容易滥用 watch——特别是如果你之前使用过 AngularJS 。然而 。通常更好的做法是使用计算属性而不是命令式的 watch 回调
侦听器
【Vue中,使用过多的侦听器和计算属性有什么不好的影响?】虽然计算属性在大多数情况下更合适 。但有时也需要一个自定义的侦听器 。这就是为什么 Vue 通过 watch 选项提供了一个更通用的方法 。来响应数据的变化 。当需要在数据变化时执行异步或开销较大的操作时 。这个方式是最有用的 。
推荐阅读
- 微信表情图片 手机微信表情图片大全
- 赵匡胤不死能收回燕云十六州吗?
- 嫪毐字怎么读 嫪毐两个字要怎么读
- 鲁智深为什么要杀蒋门神?
- 友谊会破碎,还会回来吗?你怎么看?
- 交警电话是112还是122 什么情况下拨打112
- 前几天辞职,最近老板又想让回去上班,该怎么办?
- ps画笔工具的快捷键是什么 ps怎么设置画笔快捷键
- 《水浒传》第52回的内容概括是什么?如何看待这一回的故事?