iview table 组件数据没有变化手动触发表格刷新

399 阅读1分钟

iView的表格组件(Table)中,如果数据本身没有变化,但出于某种原因需要手动触发页面刷新(即重新渲染表格),可以采取以下几种方法。

1. 更改绑定到表格的数据引用

即使数据内容没有变化,但如果你更改了绑定到表格的数据的引用(即指向了新的数组或对象),Vue 将会重新渲染该组件。

data() { 
  return { 
    tableData: [...] // 初始表格数据 
  }
},
methods: { 
  forceRefreshTable() {
    // 创建一个新的数组引用,内容相同但引用不同
    this.tableData = [...this.tableData]; 
  } 
}

2. 使用Vue的key属性

Vue的key属性可以用来识别组件的身份。当你改变key时,Vue会销毁旧的组件并创建一个新的组件。虽然这种方法可能会导致性能问题,但在某些情况下它可以用来强制刷新。

<Table :data="tableData" :key="tableKey">...</Table> 
<Button @click="forceRefreshTable">强制刷新表格</Button>
data() { 
  return { 
    tableKey: 1, // 用于触发重新渲染的key 
    tableData: [...] // 初始表格数据 
  }
}, 
methods: { 
  forceRefreshTable() { 
    this.tableKey++; // 改变key以触发重新渲染 
  } 
}