this.$forceUpdate等效于Vue3-CompositionAPI?
在 Vue 2 中,this.$forceUpdate()可以使用实例方法手动更新组件。我们如何在 Vue 3 - Composition API(内部设置方法)中强制更新组件?
setup(props, context) {
const doSomething = () => {
/* how to call $forceUpdate here? */
}
return {
doSomething
}
}
提前致谢。
回答
$forceUpdate在 Vue3 中仍然可用,但您将无法在setup()函数中访问它。如果你绝对需要使用它,你可以使用对象 API 组件或这个花哨的技巧......
app.component("my-component", {
template: `...`,
methods: {
forceUpdate(){
this.$forceUpdate()
}
},
setup(props) {
const instance = Vue.getCurrentInstance();
Vue.onBeforeMount(()=>{
// instance.ctx is not populated immediately
instance.ctx.forceUpdate();
})
return {doSomething};
},
})
如果这看起来是一个荒谬的解决方案,请相信您的判断。理想情况下,您的应用程序不会依赖于forceUpdate. 如果您依赖它,则可能意味着某些配置错误,这应该是首先要解决的问题。
THE END
二维码