compted(计算属性)与watch的区别
-
computed适用场景:
-
利用一个或者多个响应式属性计算出一个新值
-
当需要根据根据其他数据的变化,返回一个新的处理结果,并且该结果会频繁使用时
-
当需要优化性能,避免重复计算时,适合使用
-
watch适用场景:
-
当需要在数据变化的时候执行复杂的操作时候(异步请求,访问dom元素,手动触发其他函数)
-
适合监听深层嵌套对象
-
有明显的副作用需求(类如日志记录,外部数据操作,深度对象观察) coputed(()=>{
list.value.filter(item=>item>2)
}) 会利用缓存功能,适合计算复杂逻辑的属性,减少不必要的计算,会默认缓存结果
3.watch函数:监听数据变化,数据变化时候执行回调函数
watch(count,(newvalue,oldvalue)=>{
console.log('count变化了',newvalue,oldvalue)
})
监听多数据用数组[]
immediate:true(类似与do while)
深度监听deep:true
监听某一个属性:watch(
()=>element.value.age,
()=>{
console.log('age变化了')}
)