今天看到一个后端同事提交的代码。在 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 中去作为“请求参数”来请求,也就是解释开始的问题。
以上纯属个人的猜想,拿生命周期打印了一下还是有点懵。。。
1
bug51 OP |
2
lDqe4OE6iOEUQNM7 163 天前
因为在 setup 调用时候,Vue 2 的 data 还未初始化。
|
3
revalue 163 天前
setep 创建的响应式是`setupState`吧,所以比 beforeCreate 早,比 vue2 的 data 早,比 created 早
|
4
revalue 163 天前
setup 里面做的 ajax 请求,请求参数一般拿的是 setupState 的
|