如何在多页 vue 应用程序中的页面之间传输状态?

Posted

技术标签:

【中文标题】如何在多页 vue 应用程序中的页面之间传输状态?【英文标题】:How to transfer state between pages in multipage vue app? 【发布时间】:2021-09-25 12:50:27 【问题描述】:

我想在多页 vue 应用中的页面之间传输数据。我用 store 尝试了 vuex,但它不起作用。

我使用 vue.config.js 文件来制作多页应用程序。每个页面本身都有 App.vue 和 main.js。当我将 store.js 导入 main.js 时,在那里启动它,它只适用于它自己的 App.vue。但我需要将数据从一页传输到另一页。从一个 App.vue 到另一个 App.vue。

(例如:- 当我在一个页面上单击一个人的姓名时,它应该加载该人的个人资料及其详细信息。(这是另一个页面))。我的计划是当有人单击个人资料图片时,有关该人的详细信息会进入商店,我想在个人资料页面中检索它们。它没有用。我是 Vue 的新手。我做错了吗?有没有更好的方法来做到这一点?有人可以帮助我取得成功吗?谢谢!

ps- 还附加了数据库。如果有办法在页面之间传递引用也可以。

vue.config.js 的一部分

module.exports = 
pages: 
  'index': 
    entry: './src/pages/home/main.js',
    template: 'public/index.html',
    title: 'Home',
    chunks: [ 'chunk-vendors', 'chunk-common', 'index' ]
  ,
  'register': 
    entry: './src/pages/register/main.js',
    template: 'public/index.html',
    title: 'Register',
    chunks: [ 'chunk-vendors', 'chunk-common', 'register' ]
  ,
  'login': 
    entry: './src/pages/login/main.js',
    template: 'public/index.html',
    title: 'Login',
    chunks: [ 'chunk-vendors', 'chunk-common', 'login' ]
  ,

store.js

import Vue from 'vue';
import Vuex from 'vuex';

Vue.use(Vuex);

export const store = new Vuex.Store(
   state:
    //this is not real data
    i:0
,

Part of my code editor's file stack to get a better idea

我按照下面线程中的方法制作了一个多页应用程序

https://***.com/questions/51692018/multiple-pages-in-vue-js-cli

【问题讨论】:

HTML 协议是无状态的。在一个接一个加载的页面(HTML 文件)之间共享任何数据是非常困难的(并非不可能)。这就是大多数服务器端框架中存在会话的原因。从您的问题(尤其是“当我在一个页面上单击一个人的姓名时,它应该加载该人的个人资料及其详细信息”)看来您想要的是使用 Vue Router 的单页应用程序(SPA)......而不是多页应用 【参考方案1】:

如果您想在不同的选项卡中使用您的应用程序拥有相同的Vuex store,请尝试使用vuex persisted state 插件。插件会将您的商店保存在 localStorage 中,这样您就可以在不同的选项卡(或您的应用程序的不同实例,如果您愿意)之间共享同一个商店。

【讨论】:

以上是关于如何在多页 vue 应用程序中的页面之间传输状态?的主要内容,如果未能解决你的问题,请参考以下文章

如何在多页 NSPrintOperation 中更改页面方向?

使用滑动手势在多页 jQuery 移动应用程序中更改页面

如何阻止用户在多页测验中编辑网址?

在多页网格视图中获取行数?

多页vue应用的单页面打包方法(内含打包模式的应用)

在多页pdf的流程中附加一个块