了解Vue-Router和数据属性



我有一个情况,当我导航到路线时,我的计算属性更新并相应地更新了视图。当我切换到另一个路线然后返回时 - 我将丢失此范围中分配的所有数据。我正在使用创建这些变量来初始化这些变量,然后导航它们重新引导到零状态。

在我的计算属性中,我填充了这些其他(创建的变量),并且在视图中使用了这些。

我的问题是 - 重新初始化正常吗?我要这么错误吗?

    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>一起使用。

相关内容

  • 没有找到相关文章

最新更新