都是对数据进行监听,能用computer就不用watch
    使用场景:
    watch:处理比较复杂的业务逻辑以及异步操作
    computer:简单的数据同步计算

    Watch: {
    obj: function ( newV, oldV) {
    等同于handler写法,immediate为false
    console.log(‘第一次不会执行handler’);
    }
    obj (newV, oldV) {
    等同于handler写法,immediate为false
    console.log(‘第一次不会执行handler’);
    }
    obj: {
    handler () {
    console.log(‘immediate:会立即执行handler’);
    },
    immediate: true,
    }
    obj: {
    handler () {
    console.log(‘deep: 深度遍历属性,进行深度监听,会触发handler’);
    },
    deep: true
    }
    ‘obj.a’: {
    handler () {
    console.log(‘字符串形式:减少深层绑定监听器开销’);
    },
    deep: true
    }

    }

    computed: {
    …mapState(‘common’, {
    contractFileList: state => state.contractFileList,
    }),
    …mapState({
    addressOrderPageList: state => state.addressOrder.addressOrderPageList,
    }),
    changeMessage() {
    // message 变化而变化
    return this.message + ‘world’;
    },
    changeMessage: {
    get () {
    // message 变化而变化
    return this.message + ‘world’;
    },
    set () {}
    },
    didiFamily:{
    //getter
    get:function(){
    return this.didi + ‘ ‘ + this.family
    },
    //setter
    set:function(newValue){
    // 由于该计算属性被赋值(在其他地方赋值,比如mounted,赋值才会触发setter),将被调用
    console.log(newValue)
    this.didi = 123
    this.family = 456
    }
    },
    now:{
    cache: false, // 依赖实时的非观察数据属性(如date)时,cache为false可以实现实时变化
    get:function(){
    // 计算属性是基于响应式依赖进行缓存的,这意味着下面的计算属性将不再更新,因为Date.now()不是响应式依赖
    return Date.now()
    }
    }
    },