Vue3项目打包发布后,const { ctx } = getCurrentInstance()无法获取路由/全局挂载对象问题
getCurrentInstance代表上下文,即当前实例。
ctx相当于Vue2的this, 但是需要特别注意的是ctx代替this只适用于开发阶段,如果将项目打包放到生产服务器上运行,就会出错,ctx无法获取路由和全局挂载对象的。此问题的解决方案就是使用proxy替代ctx,代码参考如下:
import { getCurrentInstance } from 'vue'
setup () {
const { proxy } = getCurrentInstance()
proxy.$root.$router.push({
path: '/AddAgentManage',
query: {
id: item.id
}
})
onMounted(() => {
let curId = proxy.$root.$router.currentRoute.value.query.id || ''
})
}
网友评论