标准用法
一开始是在插件里面使用 provide 注入(注册)全局状态,然后在需要的时候使用 inject 提取出来。
本来挺好用的,但是遇到两个小问题。
- main.js 里面使用多个插件,插件A里面使用 provide 注入 的状态,插件B里面似乎提取不出来。
- 按钮的单击事件里面,似乎也取不出来。
静态对象
提取不出来怎么办呀,就想了各种办法,比如在同一级里面直接返回,在 setup 里面定义变量,先接收状态,然后事件里面就可以用了(通过定义的变量获取状态)。
然后代码写的很难看。。。
后来发现了“静态对象”!(好像是基础知识。。。)
就是在 js文件 里面用 export 返回一个 object,
然后组件或者插件里面 import 这个js文件,
于是这个 object 就变成了全局变量,任何位置都可以获取,
当然任何地方也都可以修改,
同时也会影响其他使用的地方。
对比
前者是官方推荐的方法,但是有两个小问题。
后者比较实用,但是似乎有人会说,这么做不规范,容易出现问题。
现在尝试改成静态对象的方法,用一段时间看看,会不会有啥问题。