vue3 provide + inject VS 静态对象

作者: 自然框架 | 来源:发表于2021-08-29 11:49 被阅读0次

标准用法

一开始是在插件里面使用 provide 注入(注册)全局状态,然后在需要的时候使用 inject 提取出来。
本来挺好用的,但是遇到两个小问题。

  • main.js 里面使用多个插件,插件A里面使用 provide 注入 的状态,插件B里面似乎提取不出来。
  • 按钮的单击事件里面,似乎也取不出来。

静态对象

提取不出来怎么办呀,就想了各种办法,比如在同一级里面直接返回,在 setup 里面定义变量,先接收状态,然后事件里面就可以用了(通过定义的变量获取状态)。

然后代码写的很难看。。。

后来发现了“静态对象”!(好像是基础知识。。。)

就是在 js文件 里面用 export 返回一个 object,
然后组件或者插件里面 import 这个js文件,
于是这个 object 就变成了全局变量,任何位置都可以获取,
当然任何地方也都可以修改,
同时也会影响其他使用的地方。

对比

前者是官方推荐的方法,但是有两个小问题。
后者比较实用,但是似乎有人会说,这么做不规范,容易出现问题。

现在尝试改成静态对象的方法,用一段时间看看,会不会有啥问题。

相关文章

网友评论

    本文标题:vue3 provide + inject VS 静态对象

    本文链接:https://www.haomeiwen.com/subject/iqmwiltx.html