关于数据监听,vue提供了两种方式watch和computed(计算属性)

watch

常规用法

watch:{
    id(newVal,oldVal){
        // do somethings ...
    }
}

深层监听

// 深度监听,可监听到对象、数组的变化
watch:{
    obj:{
        deep: true, // 监听多层对象或者数组
        immediate: true, // 立即生效
        handler: (newVal, oldVal) => {
            // do somethings ...
        },
    }
}

配合生命周期

// 有的时候我们会使用使用多个组件进行传值,在watch到变化的时候往往监听的组件还没有加载完成这时候就需要配合生命周期使用
mounted(){
    this.$watch('obj', (newVal,oldVal) => {
        // do somethings...
    }, { deep: true, immediate: true })
}

配合computed(计算属性)监听vuex变化

watch:{
    nodesList: {
        immediate: true,
        deep: true,
        handler (val) {
            // do somethings...
        }
    },
},
computed:{
    obj() {
        return this.$store.state.obj
    },
}

liuoomei
175 声望18 粉丝

走出舒适区,外面的风景格外迷人!