V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
bug51
V2EX  ›  Vue.js

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

  •  
  •   bug51 · 163 天前 · 1371 次点击
    这是一个创建于 163 天前的主题,其中的信息可能已经有所发展或是发生改变。

    今天看到一个后端同事提交的代码。在 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 中去作为“请求参数”来请求,也就是解释开始的问题。

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

    4 条回复    2024-07-17 18:04:19 +08:00
    lDqe4OE6iOEUQNM7
        2
    lDqe4OE6iOEUQNM7  
       163 天前
    因为在 setup 调用时候,Vue 2 的 data 还未初始化。
    revalue
        3
    revalue  
       163 天前
    setep 创建的响应式是`setupState`吧,所以比 beforeCreate 早,比 vue2 的 data 早,比 created 早
    revalue
        4
    revalue  
       163 天前
    setup 里面做的 ajax 请求,请求参数一般拿的是 setupState 的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   951 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 21:36 · PVG 05:36 · LAX 13:36 · JFK 16:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.