Vue3生产环境无法获取全局挂载对象的问题

2022-04-25 17:44:50 浏览数 (1)

ctx代替this只适用于开发阶段,在生产环境ctx无法获取路由和全局挂载对象,会报错,应使用proxy替代ctx。

代码语言:javascript复制
<script>
// getCurrentInstance代表上下文,即当前实例
import { defineComponent, getCurrentInstance } from 'vue'
 
export default defineComponent({
  name: '',
  setup(){
    const { proxy } = getCurrentInstance() // 使用proxy代替ctx,因为ctx只在开发环境有效
    console.log(proxy.$root.$route, proxy.$root.$router) // 路由信息
    console.log(proxy.$systemName) // 全局挂载对象
    return {}
  }
})
</script>

0 人点赞