在学习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无用
悬赏问题
- ¥15 使用ue5插件narrative时如何切换关卡也保存叙事任务记录
- ¥20 软件测试决策法疑问求解答
- ¥15 win11 23H2删除推荐的项目,支持注册表等
- ¥15 matlab 用yalmip搭建模型,cplex求解,线性化处理的方法
- ¥15 qt6.6.3 基于百度云的语音识别 不会改
- ¥15 关于#目标检测#的问题:大概就是类似后台自动检测某下架商品的库存,在他监测到该商品上架并且可以购买的瞬间点击立即购买下单
- ¥15 神经网络怎么把隐含层变量融合到损失函数中?
- ¥15 lingo18勾选global solver求解使用的算法
- ¥15 全部备份安卓app数据包括密码,可以复制到另一手机上运行
- ¥20 测距传感器数据手册i2c