我们正在将我们的Vue2应用程序迁移到Vue3,这样我们就有了选项API和组合API。大多数组合API都工作得很好。但是...
我无法在组合API方法中进行路由,因为在升级到Vue 3和Vue Router 4之前,Vue Router组合(允许您访问setup()
方法中的路由器)不可用。因此,为了访问全局注册的路由器插件,我们在组件上定义了一个methods
块,用于处理路由:
methods: {
changeRoute() {
this.$router.push({ name: 'home' })
}
}
我想从设置块中调用this.changeRoute()
作为一个函数。这样我就可以用组合API编写组件,而只保留Vue2风格的路由方法。这可能吗?
我知道在单个组件中混合选项API和组合API并不理想,但这确实是我需要处理的唯一情况。
1条答案
按热度按时间bnl4lu3b1#
最后按照Tolbxela的建议,在组件的根级别上发布了路由器本身的注入:
然后能够通过inject在子组件内部访问它: