vue3 provide + inject VS 静态对象

标准用法

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

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

静态对象

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

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

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

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

对比

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

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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容