为了账号安全,请及时绑定邮箱和手机立即绑定

vue2.0计算属性

vue2.0计算属性

ITMISS 2018-10-12 14:11:58
最近遇到一个问题,通过比较复杂的表达式的到一个属性,我想到了可以用计算属性computed.但是没有实现. 举例子demo如下:b是由a属性得到的,即取a的第一条数据的text值。点击按钮只希望给b重新赋值,但是并不改变a<button @click="change">dianji</button>new Vue({            el: '#app',            data: {                a: [                    {index: 0, text: 'a',},                    {index: 1, text: 'b',}                ]            },            computed: {                b: {                    get: function () {                        return this.a[0].text                    },                    set: function (val) {                        //点击按钮只改变b的值,不改变a的值,该如何实现??????                    }                }            },            methods: {                //点击按钮只改变b的值,不改变a的值                change: function () {                    this.b = 101                },            },        }    );此处不知如何实现。想实现此需求的话,是不是不能用computed因为b是依赖于a的,但是a在初始化之后就不能变了。是这个原因吗?要实现此功能的话,还有个办法是在钩子函数created的时候来取得b的值,以后再给b赋值就不需要依赖a,也不会改变a了吧?请问各位computed的方法怎么实现,或者还有更好的方法吗?
查看完整描述

1 回答

?
holdtom

TA贡献1805条经验 获得超10个赞

之前也遇到过这个问题,结论就是你说的计算属性的值不能脱离其依赖,因为他的值是从get算出来的
从目前来看,你只需要在data中加b,然后再methods的回调中对其重新赋值就可以了,或许你可以再补充下情景。

查看完整回答
反对 回复 2018-11-27
  • 1 回答
  • 0 关注
  • 539 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号