我有一个情况,当我导航到路线时,我的计算属性更新并相应地更新了视图。当我切换到另一个路线然后返回时 - 我将丢失此范围中分配的所有数据。我正在使用创建这些变量来初始化这些变量,然后导航它们重新引导到零状态。
在我的计算属性中,我填充了这些其他(创建的变量),并且在视图中使用了这些。
我的问题是 - 重新初始化正常吗?我要这么错误吗?
created: function() {
this.abc = {};
},
computed: {
myData: function() {
return this.$store.state.myData;
},
setupData: function() {
console.log('only update now!')
var myData = this.myData;
//doSomething that updates this.abc
}
},
watch: {
myData: {
handler: function(newValue) {
this.setupData(newValue);
},
deep: true
}
},
是的,重新定位是正常的。如果要保留组件,请使用"保持贴"标签:
如果要将切换的组件保存在内存中,以便您可以保留其状态或避免重新渲染,您可以包裹动态元素中的组件:
<keep-alive>
<component :is="currentView">
<!-- inactive components will be cached! -->
</component>
</keep-alive>
有关<router-view>
的文档也指的是:
由于它只是一个组件,因此可以与
<transition>
和<keep-alive>
一起使用。