Vue3获取组件实例getCurrentInstance()打包上线报错的解决方案, u.ctx._debounce is not a function
Vue3里常规挂载方法/属性以及调用在Vue3的开发过程中,难免会在全局挂载方法或者属性。挂载:// main.tsimport App from './App.vue'import _ from 'lodash'const app = Vue.createApp(App)app.config.globalProperties._debounce = _.debounce使用:// App.vue
·
Vue3里常规挂载方法/属性以及调用
在Vue3的开发过程中,难免会在全局挂载方法或者属性。
挂载:
// main.ts
import App from './App.vue'
import _ from 'lodash'
const app = Vue.createApp(App)
app.config.globalProperties._debounce = _.debounce
使用:
// App.vue
setup({
const instance = getCurrentInstance()
instance.ctx._debounce(func, delay,)
})
上述使用会出现的问题
上面的使用方法在开发模式
下是完全ok的,一旦将代码打包部署上线后,就会报错
原因是在开发模式和生产模式下的生成的instance
实例不一样。
让我们打印
console.log(getCurrentInstance())
看看
区别
所以为什么报错就很明显,接下来就是找到一个可替代属性,我去看了一下官网描述。解决办法就出来了。
解决办法
将
instance.ctx
替换成instance.appContext.config.globalProperties
更多推荐
已为社区贡献7条内容
所有评论(0)