四种方法:
- 刷新整个页面(最low的,可以借助
route
机制) - 使用
v-if
标记(比较low的) - 使用内置的
forceUpdate
方法(较好的) - 使用
key-changing
优化组件(最好的)
第一种方法一般不做考虑;
第二种方法,好处在于能够直接触发组件的完整生命周期
第三种方法,是迫使vue组件重新渲染,实际上指的是强制重启render函数。即调用该方法后 只会触发beforeUpdate、updated 这两个生命周期,而且只会影响当前组件以及其插槽内容.但是这种做法并不推荐,官方说如果你现在的场景需要用forceUpdate方法 ,那么99%是你的操作有问题,如上data里不显示声明对象的属性,之后添加属性时正确的做法时用 vm.$set()
方法,所以forceUpdate请慎用。
第四种方法,是最优解,虽然麻烦点,但是对性能渲染要求不高,实现无缝更新子组件。优先使用