javascript - vue2.0计算属性
ringa_lee
ringa_lee 2017-04-11 12:41:02
[JavaScript讨论组]

最近遇到一个问题,通过比较复杂的表达式的到一个属性,我想到了可以用计算属性computed.但是没有实现. 举例子demo如下:

b是由a属性得到的,即取a的第一条数据的text值。点击按钮只希望给b重新赋值,但是并不改变a。



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的方法怎么实现,或者还有更好的方法吗?
ringa_lee
ringa_lee

ringa_lee

全部回复(1)
大家讲道理

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号