Vue 中计算属性的 setter 和 getter

计算属性其实是非常强大的,这一节深入的学习下计算属性,先看一段代码:

<div id="app">
    {{fullName}}
</div>
let vm = new Vue({
    el: '#app',
    data: {
        firstName: 'Dell',
        lastName: 'Lee'
    },
    computed: {
        fullName(){
            return this.firstName + ' ' + this.lastName
        }
    }
})

插值表达式{{fullName}}首先回去data中去找fullName这个属性,找不到再去计算属性中去找,找到之后在将它显示在页面之中。

计算属性中的fullName我们换一种写法:


<div id="app">
    {{fullName}}
</div>
let vm = new Vue({
    el: '#app',
    data: {
        firstName: 'Dell',
        lastName: 'Lee'
    },
    computed: {
        fullName:{
            get(){
                return this.firstName + ' ' + this.lastName
            },
            set(value){
                var arr = value.split(' ')
                this.firstName = arr[0]
                this.lastName = arr[1]
            }
        }
    }
})

当我去使用这个计算属性的时候,调用插值表达式,去读这个内容,它就会走get的方法

当我去设置这个属性属性值的时候,set方法会被执行,同时会拿到设置的这个值,我就可以通过这个值去设置firstNamelastName

computed有这样一个特性,它呢什么时候会重新计算,当它依赖的值发生变化时,它就会重新去计算 ,重新计算之后,那么你看,当你set fullName时,this.firstName的值就会发生变化,恰好这个值又是fullName所依赖的一个值,所以就会引起fullName的重新计算,重新计算之后,fullName的值变了,页面上显示的fullName也就跟着变了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值