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>