如何在 Vue js 中创建一个组件以永远不会删除我添加到其中的数据?当我切换路由时,组件会删除它获得的所有数据

Posted

技术标签:

【中文标题】如何在 Vue js 中创建一个组件以永远不会删除我添加到其中的数据?当我切换路由时,组件会删除它获得的所有数据【英文标题】:How can i make an component in Vue js to never delete the data i added to it? When i switch routes the component delete all the data it got 【发布时间】:2019-08-02 06:26:02 【问题描述】:

我在 Vue js 的网上商店工作,当我添加产品时,我使用事件总线,然后我通过事件总线将产品添加到 CartComponent。它可以工作,但是当我返回并添加新产品或只是返回时,页面重新加载我的 CartComponent 中的所有数据都将被删除。我怎么能这样做它永远不会删除它得到的数据?

我尝试用

包围组件
<keep-alive>
<CartComponent />
</keep-alive>

但这不起作用。 有人能告诉我如何做到这一点,当我切换路线时组件不会删除数据吗?

【问题讨论】:

【参考方案1】:

总线是一个通讯枢纽,它不会为你存储信息。

你有几种方法可以解决这个问题:

实现您自己的模块来存储此信息。当您更新购物车时,也会更新您的模块。或者 使用 Vuex,它作为存储实现。您的所有信息都应该流经商店。它是持久的并且在全球范围内可用。更多关于 Vuex here

我强烈推荐使用 Vuex。

【讨论】:

如果我的回答解决了您的问题,请接受回答。

以上是关于如何在 Vue js 中创建一个组件以永远不会删除我添加到其中的数据?当我切换路由时,组件会删除它获得的所有数据的主要内容,如果未能解决你的问题,请参考以下文章

在 Vue.js 中创建自定义组件

如何在Vue.js中创建自定义链接组件?

vue中创建全局单文件组件/命令

如何在输入文本区域中创建 Enter 事件以使用 Vue.js 和 Electron 按下按钮

我可以在 vue js 中创建一个带有循环的组件吗?有没有办法让它被识别为html标签?

如何在vue.js中创建用于创建和编辑功能的简单模式?