vue-数据监听

关于数据监听,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
    },
}

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理