zlzlzlzz 2023-04-23 13:32 采纳率: 50%
浏览 13
已结题

Vue中的计算属性的getter

在学习Vue框架的时候,学到了计算属性这个内容,书上说,在计算属性里写一个get函数,然后读取属性值的时候,就会调用到get函数。那么,这个过程是怎么实现的呢?get函数不是自己写的吗?为什么vue知道要去调用这个函数呢?

  • 写回答

2条回答 默认 最新

  • 乘风xs 2023-04-23 13:46
    关注

    在vue2中,这个get是Object.defineProperty()中的一个访问器属性,任何一个变量都会有set/get/value/write这样的四个内置属性,在给变量赋值的时候会触发set,在访问变量的值的时候会触发get。Object.defineProperty则是可以修改这四个内置属性。vue2正式通过数据劫持实现这个过程。
    vue3中则是通过proxy拦截get操作。以下给一个Object.defineProperty的例子。

    var obj = {}; // Creates a new object 创造对象
    Object.defineProperty(obj, "hello", {   
             get: function () {
                    console.log('触发了get')
                    return "123"
              },
    })
    console.log(obj.hello)
    //先打印  触发了get
    // 再打印 123
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)
编辑
预览

报告相同问题?

问题事件

  • 系统已结题 4月30日
  • 已采纳回答 4月23日
  • 创建了问题 4月23日
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部