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

Vue中的计算属性的getter

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

  • 写回答

2条回答 默认 最新

  • 乘风xs 2023-04-23 21: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条)

报告相同问题?

问题事件

  • 系统已结题 5月1日
  • 已采纳回答 4月23日
  • 创建了问题 4月23日

悬赏问题

  • ¥15 nginx中的CORS策略应该如何配置
  • ¥30 信号与系统实验:采样定理分析
  • ¥100 我想找人帮我写Python 的股票分析代码,有意请加mathtao
  • ¥20 Vite 打包的 Vue3 组件库,图标无法显示
  • ¥15 php 同步电商平台多个店铺增量订单和订单状态
  • ¥15 关于logstash转发日志时发生的部分内容丢失问题
  • ¥17 pro*C预编译“闪回查询”报错SCN不能识别
  • ¥15 微信会员卡接入微信支付商户号收款
  • ¥15 如何获取烟草零售终端数据
  • ¥15 数学建模招标中位数问题