重置按钮上的Vue rerender组件

问题描述 投票:0回答:1

我有一个重置按钮,可将状态重置为初始值。我需要使用currentTab重新渲染组件,是否有任何下注方法?

<button @click="resetData">reset</button>

<keep-alive>
    <component :is="currentTab"></component>
</keep-alive>

methods: 
resetData() {
    this.$store.dispatch('resetData')
    // re-render component based on the currentTab
    ??
}

currentTab我从选项卡列表中获得:

tabs: [One, Two, Three]
vue.js button components render vue-reactivity
1个回答
0
投票

有几种强制渲染的方法。为此,请在父级上为子级设置key。更改密钥将导致孩子重新提交:

HTML:

<component :is="currentTab" :key="tabKey"></component>

在父级中,将键定义为数字:

data() {
  return {
    tabKey: 0
  }
}

更改key

methods: {
  resetData() {
    this.tabKey++;
  }
}

注意:从组件内部使用this.$forceUpdate只会导致其视图重新呈现。

© www.soinside.com 2019 - 2024. All rights reserved.