vue3 的一个神奇问题,求解惑

2023-10-12 18:19:35 +08:00
 lawsiki
代码地址如下:

https://play.vuejs.org/#eNp9kU1PwzAMhv9KlAubmDrQbqOb+NAOcAAEHHMpqbtlS5MocUalqv8dL2XdDmhVD47fx87ruOUPzmX7CHzO8yC9crgURtXOemQt81BIVHuYUFSxjlXe1uyK8CthhIEmYSVURdSEC8NYAIxuNE4xoyqM3vRK/5lYz6nX6GY8OSWLshyNzynGcKNCRjC7XrDbu5PS9WGXUnSgP58OxumAUDtdINCJsfw7IlrD7qVWcrcQPN0k+LJtqXfX5dMeIDifDpV8wjFIayq1zrbBGnqb5E1waWunNPg3h8qaIPj86Jpaa21/XlIOfYS/8ahmA3L3T34bmkNO8HcPAfweBB80LPwasJdXn6/QUDyItS2jJvqC+AHB6njw2GOP0ZRk+4xLbp/TnpVZf4VVg2DCcaiD0fTAiRecNv50YfST3Vk2Oy6Gd79sGMJ7

![]( )

为什么这段代码能够正常执行? ref 包装的对象不是需要 .value 读取修改么?
879 次点击
所在节点    Vue.js
4 条回复
charlie21
2023-10-12 19:00:28 +08:00
直接在 return 里写东西,这让我想起了
https://www.naiveui.com/zh-CN/os-theme/components/checkbox
lawsiki
2023-10-12 21:53:26 +08:00
@charlie21 上手 vue3 就是用的这个框架😂
zhangjiancheng
2023-10-13 09:19:05 +08:00
没有仔细看过 setup 的源码,应该是 setup 在处理 return 的返回值时有做处理,实际在 add()内 console.log(this)也能看到 num 被处理过不需要.value 访问,就像 template 内访问 ref 一样不需要.value
CHTuring
2023-10-13 10:08:58 +08:00
因为 setup 中 return 其实就是 render 函数

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/981422

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX