本人是使用的vite3+vue3+TS+Naive UI
标题提到的四个组合API都是需要在setup中使用的,如果脱离,就会报错,在搭建框架的时候又需要脱离单独使用。搜索了好多的解决方案,大都是将他们注册到window中,然后再全局调用。
比如在路由守卫中需要使用useDialog做一个加载动画,在封装的Request增加一些提醒等,都是需要脱离setup的。
其实官方已经想到了,已经不需要将他们注册到window中。上图
在2.29版本中增加了一个非常NB的且方便的API
我在需要使用的文件中加入createDiscreteApi即可,下面这个是我使用的简单的例子,在路由守卫中先引入,然后即可调用
import { createDiscreteApi } from 'naive-ui'
const { loadingBar } = createDiscreteApi(['loadingBar'])
//....
router.afterEach(() => {
loadingBar.finish()
})