vue的计算属性和监听器

监听器

watch与data和methods同级
watch 监听data中属性的改变

         const vm = new Vue({
            el: '#app',
            data: {
                firstValue: '',
                endValue: '',
                // value: ' ',
                obj: {
                    name: 'zs'
                }
            },
            methods: {
                // add() {
                //     this.value = this.firstValue + '-' + this.endValue
                // }
                changeObj() {
                    this.obj.name = 'ls'
                    console.log(this.obj.name);
                }
            },
            //watch  监听data中属性的改变
            watch: {
               
                obj: {
                    handler(val) {
                        console.log(val);
                    },
                    deep: true
                },
                firstValue: {
                    handler(newVal, oldVal) {
                        console.log(newVal);
                        console.log(oldVal);
                    },
                    // immediate 立即执行监听
                    immediate: true,
                    // deep 深度监听
                    deep: true
                }
            }
        })

计算属性

computed 中的元素不能再data中定义
computed与data和methods同级

 const vm = new Vue({
            el: '#app',
            data: {
                firstValue: '',
                endValue: '',
                // value: ' ',
                obj: {
                    name: 'zs'
                }
            },
            methods: {
                // add() {
                //     this.value = this.firstValue + '-' + this.endValue
                // }
                changeObj() {
                    this.obj.name = 'ls'
                    console.log(this.obj.name);
                }
            },
            computed: {
                value: {
                    get() {
                        return this.firstValue + '-' + this.endValue
                    },
                    set(val) {
                        console.log(val);
                        console.log(val.split('-'));
                        this.firstValue = val.split('-')[0]
                        this.endValue = val.split('-')[1]
                    }
                }
            }
        })

methods watch 和computed的区别

1、computed属性的结果会被缓存,除非依赖的响应式属性变化才会重新计算。主要当作属性来使用,使用的时候不加();
2、methods方法表示一个具体的操作,主要书写业务逻辑;
3、watch一个对象,键是需要观察的表达式,值是对应回调函数。主要用来监听某些特定数据的变化,从而进行某些具体的业务逻辑操作,可以看作是computed和methods的结合体。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值