总结:
计算属性computed:===>同名优先级 不用传参 自己逻辑代码直接使用this的变量;会把计算结果缓存起来,并监听我们呢计算过得数据源,如果被监听的数据源发生了变化,才会重新计算。
属性监听器watch:===>必须同名 默认只能监听data的第一层 可以设置深度监听。只有侦听的属性发生变化时才会触发(可以深度监听,但会更消耗内存)
数据源data:====>vm劫持 ,同名有优先级 名字不用_和$打头 如果使用Vue判定为官方关键字就不会劫持
如果数据源中有数组 数组常用的方法会被拦截重写 因此调用数组的方法修改数据后刷新页面
通过下标修改数组 不会刷新页面===>Vue.set(this.arr,index,this.arr[index])
方法methods:====>vm劫持 同名优先级 函数和事件中使用
过滤器filter:独立技术不受影响,往往用于数据渲染前的数据,出来用法跟方法不一样,它没有被劫持
面试题:
计算属性、属性侦听器、过滤器、方法那些被this劫持?区别有哪些?
答:计算属性,方法,数据源
区别:
计算属性computed:===>同名优先级 不用传参 自己逻辑代码直接使用this的变量;会把计算结果缓存起来,并监听我们呢计算过得数据源,如果被监听的数据源发生了变化,才会重新计算。
属性监听器watch:===>必须同名 默认只能监听data的第一层 可以设置深度监听。只有侦听的属性发生变化时才会触发(可以深度监听,但会更消耗内存)
过滤器filter:独立技术不受影响,往往用于数据渲染前的数据,出来用法跟方法不一样,它没有被劫持
方法methods:====>vm劫持 同名优先级 函数和事件中使用
为什莫把这些函数分开设计?
答:为了业务更明显,功能更好调试。