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. 如果您依赖它,则可能意味着某些配置错误,这应该是首先要解决的问题。


以上是this.$forceUpdate等效于Vue3-CompositionAPI?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>