监听 watch computed

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

监听


1.引入库

代码如下(示例):

 const vm = new Vue({
            el: '#app',
            data: {
                firstName: '',
                endName: '',
                // name: '',
                obj: {
                    name: 'zs'
                }
            },
            // 监听data中属性的改变:
            watch: {
                // firstName(val) {
                //     console.log(val);
                //     this.name = this.firstName + '-' + this.endName
                // },
                // endName(val) {
                //     console.log(val);
                //     this.name = this.firstName + '-' + this.endName
                // }
                obj: {
                    handler(val) {
                        console.log(val);
                    },
                    deep: true
                },
                firstName: {
                    handler(newVal, oldVal) {
                        console.log(newVal);
                        console.log(oldVal);
                    },
                    // 立即执行监听
                    immediate: true,
                    // 深度监听
                    deep: true
                }
            },
            computed: {
                // The computed property "name" is already defined in data.
                // 计算属性中的属性不能再data中定义
                // name() {
                //     // console.log('执行了');
                //     return this.firstName + '-' + this.endName
                //     // return  11
                // },
                name: {
                    get() {
                        return this.firstName + '-' + this.endName
                    },

                    set(val) {
                        console.log(val);
                        console.log(val.split('-'));
                        this.firstName = val.split('-')[0]
                        this.endName = val.split('-')[1]
                    }
                }
            },
            methods: {
                changeObj() {
                    this.obj.name = 'ls'
                    // console.log(this.obj.name);
                }
                // add() {
                //     this.name = this.firstName + '-' + this.endName
                // }
            },
            // mounted() {
            //     this.name = this.firstName + '-' + this.endName
            // },

            // beforeUpdate() {
            //     this.name = this.firstName + '-' + this.endName
            // }
            // updated() {
            //     this.name = this.firstName + '-' + this.endName
            // }
        })
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值