我求助个有关Vue3 compositionAPI的问题:
我在重构原先OptionsAPI写法的代码,将每个函数拆分成了文件,统一在setup中导入,然后return给当前组件,在拆分的文件中有好多地方需要使用原OptionsAPI中data里定义的变量,我的做法是在一个文件里统一用ref和reactive定义,然后使用provide进行注入。

1. 我创建了一个名为initData.ts文件,在里面定义并导出了当前组件需要用到的data数据,通过provide进行了注入。(图二所示)
2. 在setup中的其他函数,使用inject进行访问,我在访问时发现拿不到数据,一直是undefined,控制台给我警告说。[Vue warn]: inject() can only be used inside setup() or functional components.(图一、图三、图四所示)

想问下大家,这个应该怎么解决,他说只能在setup中或者functional components.中使用inject,如果我在setup中使用inject获取到我需要的数据后,然后在每个拆分的函数中,通过参数传进去,这样太麻烦了,我的函数比较复杂,在文件里又拆分了子文件出来,如果一级级通过参数传递下去,那太不合适了,想问下大家这种场景有啥好的解决方案吗?
展开
神奇的程序员于2021-01-12 07:17发布的图片
神奇的程序员于2021-01-12 07:17发布的图片
神奇的程序员于2021-01-12 07:17发布的图片
神奇的程序员于2021-01-12 07:17发布的图片
14