美文网首页前端开发那些事儿
Vue3项目打包发布后,无法获取路由router

Vue3项目打包发布后,无法获取路由router

作者: small_zeo | 来源:发表于2021-05-19 18:02 被阅读0次

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 || ''
  })
}

相关文章

网友评论

    本文标题:Vue3项目打包发布后,无法获取路由router

    本文链接:https://www.haomeiwen.com/subject/fnopjltx.html