还有人在 setup 里面获取 vue2 的 data 么?

164 天前
 bug51

今天看到一个后端同事提交的代码。在 setup 里面获取“vue2 的 data 选项”,然后拿这个 data 数据作为“请求参数”,在 setup 里面使用这个 data 数据来请求。

说来也是很奇怪,vue 文档有一部分没解释清楚的,这就是第二个问题:setup 在生命周期排在 created 前面,为啥可以在 setup 里面直接拿 setup 数据去请求?

个人理解就是 setup 里面可以创建一批(在 setup 里面声明的)响应式数据 data 。“vue2 的 data”可以再创建另外一批响应式数据 data ,时机在 setup 后的且在 beforeCreate 后的。一共两批 data ,都创建在 created 之前。

解释回第二个问题,“setup 在生命周期排在 created 前面,为啥可以在 setup 里面直接拿 setup 数据去请求”,就是因为 setup 里面创建一批自己的响应式数据 data ,比“vue2 的 data”早创建。所以,“vue2 的 data”还没创建,不太建议拿到 setup 中去作为“请求参数”来请求,也就是解释开始的问题。

以上纯属个人的猜想,拿生命周期打印了一下还是有点懵。。。

1376 次点击
所在节点    Vue.js
4 条回复
bug51
164 天前
lDqe4OE6iOEUQNM7
164 天前
因为在 setup 调用时候,Vue 2 的 data 还未初始化。
revalue
164 天前
setep 创建的响应式是`setupState`吧,所以比 beforeCreate 早,比 vue2 的 data 早,比 created 早
revalue
164 天前
setup 里面做的 ajax 请求,请求参数一般拿的是 setupState 的

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

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

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

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

© 2021 V2EX