前端开发那些事儿每天学一点Vue3

vue3 provide + inject VS 静态对象

2021-08-29  本文已影响0人  自然框架

标准用法

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

静态对象

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

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

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

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

对比

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

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

上一篇 下一篇

猜你喜欢

热点阅读