vue入门笔记系统(四)Computed和watch
computed场景:当数据需要展示和计算时;原始消息:“{{message}}”
计算的反向消息:“{{reversedMessage}}”
varvm=newVue({el:'#example',data:{message:'Hello'},computed:{//计算属性的getterreversedMessage:function(){//`this`指向vm实例returnthis.message.split('').reverse().join('')}}})计算属性缓存与方法计算属性根据它们的依赖关系进行缓存。计算属性仅在其关联的依赖项更改时才重新评估。(不接受新的参数,而是根据data中的数据进行计算)方法是只要其他数据发生变化,触发重新渲染时,调用方法总是会再次执行该函数,性能开销相对大的。(可以接受参数)watchscene:监听数据的变化,并指定相应的操作varvm=newVue({data:{a:1,b:2,c:3,d:4,e:{f:{g:5}}},watch:{a:function(val,oldVal){//变化后的值,变化前的值console.log('new:%s,old:%s',val,oldVal)},//方法名b:'someMethod',//deepwatcher,可以观察到objectcct的所有数据变化,性能开销比较高;可以通过监听属性'e.a'来监听c:{handler:function(val,oldVal){/*...*/},deep:true},//监听开始后会立即调用此回调d:{handler:function(val,oldVal){/*...*/},immediate:true},e:[functionhandle1(val,oldVal){/*...*/},functionhandle2(val,oldVal){/*...*/}],//watchvm.e.f'svalue:{g:5}'e.f':function(val,oldVal){/*...*/}}})vm.a=2//=>new:2,old:1