【问题标题】:Maintaining view state when navigating to another view导航到另一个视图时保持视图状态
【发布时间】:2020-07-21 01:35:27
【问题描述】:

我有一个 VuesJS 视图,其中包含两个具有main-detail 关系的组件。用户可以单击main 组件中的一个项目(该项目被突出显示),details 组件将显示相关的详细项目。

products.vue

<main></main>
<details>></details>

用户可以编辑详细信息项目,我希望使用包含编辑详细信息项目的必要组件的单独视图来进行。

我希望用户能够导航回products.vue 视图(比如在完成编辑过程之后),其状态与启动编辑操作时的状态相同。

我尝试将maindetails 分别包装在&lt;keep-alive&gt;&lt;/keep-alive&gt; 中,但这似乎没有奏效。

我还阅读了一些帖子,其中&lt;keep-alive&gt;&lt;/keep-alive&gt;&lt;router-view&gt;&lt;/router-view&gt; 周围的include 属性一起使用,但我不确定在我的情况下include 中包含什么。

关于这是否可能或我做错了什么有什么想法吗?

谢谢

【问题讨论】:

    标签: vue.js vue-component vue-router


    【解决方案1】:

    要在路由更改之外保持状态,需要存储状态:

    1. 在作为&lt;router-view&gt; 父级的组件中(例如&lt;App&gt;
    2. 在您导入所需组件的new vue instance with shared state
    3. official state management library Vuex(推荐)

    【讨论】:

    • 你能详细说明#1吗?此外,存储状态很容易,问题是在像我这样的情况下,某些 UI 状态,例如用户所在的页面(在项目的多页列表中)和列表中的滚动位置不容易恢复,除非我缺少一些东西。
    猜你喜欢
    • 2019-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-28
    • 2013-08-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多