vue页面跳转后,再次返回原页面,不清空查询条件

需求说明

通过查询条件查询到对应的结果(页面A),点击某一条列表数据,跳转到对应的详情页面(页面B),点击返回按钮,再次返回页面A,之前的页面A查询条件和页面需要保持原始状态。

解决思路

因前端使用vue框架,所以决定使用vuex实现该功能。每次离开页面时,将查询条件及页码保存到vuex中,下次回到该页面,读取vuex对应的数据,因有多个页面需要保留数据,所以创建多个模块。

加载vuex后项目无法启动

使用yarn add vuex下载依赖后,项目无法启动,后查看下载的vuex版本后,发现下载的是4.0.0之后的版本,此版本适用于vue3,而本项目使用的为vue2,导致版本不适配,无法正常启动项目。
切换为vuex3版本后,项目正常启动。

功能实现

在 Vue.js 使用 Vuex 来管理并区分多个页面的状态时,可以通过创建独立的模块来实现。每个页面的状态管理可以封装在一个 Vuex 模块中,这样可以清晰地管理多个页面的状态,避免混淆。以下是具体的实现步骤和代码示例:

步骤 1: 创建 Vuex Store

首先,设置 Vuex store,并为每个需要保存状态的页面创建一个模块。

// store/index.js
import Vue from 'vue';
import Vuex from 'vuex';
import listPageA from './modules/listPageA';
import listPageB from './modules/listPageB';

Vue.use(Vuex);

export default new Vuex.Store({
  modules: {
    listPageA,
    listPageB
  }
});

步骤 2: 定义每个页面的 Vuex 模块

为每个列表页面创建一个模块,管理其状态(如查询参数和页码)。下列代码为listPageA.js代码,可以根据自身情况判断创建几个js代码

// store/modules/listPageA.js
const state = {
  query: {},
  currentPage: 1
};

const mutations = {
  setQuery(state, query) {
    state.query = query;
  },
  setCurrentPage(state, page) {
    state.currentPage = page;
  }
};

const actions = {
  saveQuery({ commit }, query) {
    commit('setQuery', query);
  },
  saveCurrentPage({ commit }, page) {
    commit('setCurrentPage', page);
  }
};

export default {
  namespaced: true,
  state,
  mutations,
  actions
};

步骤 3: 在组件中使用 Vuex 模块

在 Vue 组件中,使用 Vuex 模块的状态并在合适的生命周期钩子中保存和恢复状态。

// components/ListPageA.vue
<template>
  <div>
    <!-- 页面 -->
  </div>
</template>

<script>
import { mapState, mapActions } from 'vuex';

export default {
  name: "ListPageA",
  data() {
    return {
      localQuery: {},
      localPage: 1
    };
  },
  computed: {
    ...mapState('listPageA', ['query', 'currentPage'])
  },
  methods: {
    ...mapActions('listPageA', ['saveQuery', 'saveCurrentPage']),
    fetchList() {
      // 查询方法
    }
  },
  created() {
    if (this.query && this.currentPage) {
      this.localQuery = this.query;
      this.localPage = this.currentPage;
    }
    this.fetchList();
  },
  beforeDestroy() {
    this.saveQuery(this.localQuery);
    this.saveCurrentPage(this.localPage);
  }
};
</script>

在这个例子中,ListPageA.vue 组件使用 Vuex 模块 listPageA 来管理其查询参数和页码。当组件被创建时,它检查 Vuex 中是否有保存的状态,并使用它来恢复列表的视图。在组件销毁前(如用户离开页面时),它保存当前的状态到 Vuex。

这种模式可以为每个需要保持状态的列表页面复制和调整,确保每个页面的状态互不干扰,同时也保持了状态管理的清晰和可维护性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/554589.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

六、项目发布 -- 2. 数据库环境准备

之前我们是采用mock方式获取这些接口&#xff0c;也就是这些接口的数据其实是固定的&#xff0c;现在我们将从数据库中来获取这些数据并且在界面上进行展示。 1、数据库环境准备 到MYSQL官网上&#xff0c;主要下载服务端&#xff0c;社区版是免费的&#xff0c;安装好MYSQL …

结构体(C语言)

“点赞&#xff0c;留言&#xff0c;收藏&#xff0c;关注” 就是对阿林最大的支持 1.自定义类型 什么是自定义类型&#xff1f;C语言中有一些自带的数据类型&#xff0c;比如说char&#xff0c;int&#xff0c;float&#xff0c;double&#xff0c;long等数据类型就是C语言的…

目标检测——标注鱼类数据集

一、重要性及意义 鱼类的检测在多个领域都表现出其重要性和意义。以下是几个主要方面的阐述&#xff1a; 首先&#xff0c;从食品安全和营养价值的角度来看&#xff0c;鱼类作为人们日常生活中的重要蛋白质来源&#xff0c;其质量和安全性备受关注。鱼类营养成分检测能够评估…

C++异步回调示例:多线程执行任务,主线程通过回调监测任务状态

1、回调函数 回调函数定义&#xff1a;把函数的指针或者地址作为参数传递给另一个参数&#xff0c;当这个指针被用来调用其所指向的函数时&#xff0c;那么这就是一个回调的过程&#xff0c;这个被回调的函数就是回调函数。回调函数不是由该函数的实现方直接调用&#xff0c;而…

反转二叉树(力扣226)

解题思路&#xff1a;用队列进行前序遍历的同时把节点的左节点和右节点交换 具体代码如下&#xff1a; class Solution { public:TreeNode* invertTree(TreeNode* root) {if (root NULL) return root;swap(root->left, root->right); // 中invertTree(root->left)…

oracle 数据库 迁移 mysql

将 Oracle 数据库迁移到 MySQL 是一项复杂的任务&#xff0c;因为这两种数据库管理系统具有不同的架构、语法和功能。下面是一个基本的迁移步骤&#xff0c;供你参考&#xff1a; 步骤一&#xff1a;评估和准备工作 1.评估数据库结构&#xff1a;仔细分析 Oracle 数据库的结构…

让15万的车也配激光雷达,速腾发布中长距「千元机」MX

‍作者 |老缅 编辑 |德新 4月15日&#xff0c;国内头部激光雷达公司速腾聚创发布了新一代中长距激光雷达MX。 相比较其产品配置&#xff0c;最令人惊喜的是它的价格。 「MX将以低于200美元的价格作为基础&#xff0c;实现第一个项目的量产。」速腾聚创CEO邱纯潮在发布会现场…

Python连接Oracle数据库问题解决及Linux服务器操作知识

背景说明 最近在做一个视频分析的项目&#xff0c;然后需要将视频分析的数据写入到oracle数据库&#xff0c;直接在服务器上测试数据库连接的时候出现了这个bug提示&#xff0c;自己通过不断的研究探讨&#xff0c;最终把这个问题成功进行了解决&#xff0c;在这里进行一下记录…

Avi Wigderson:理论计算机科学的巨人

&#x1f3c6;个人专栏 &#x1f93a; leetcode &#x1f9d7; Leetcode Prime &#x1f3c7; Golang20天教程 &#x1f6b4;‍♂️ Java问题收集园地 &#x1f40d; Python工具 &#x1f334; 成长感悟 欢迎大家观看&#xff0c;不执着于追求顶峰&#xff0c;只享受探索过程 A…

LeetCode-热题100:98. 验证二叉搜索树

题目描述 给你一个二叉树的根节点 root &#xff0c;判断其是否是一个有效的二叉搜索树。 有效 二叉搜索树定义如下&#xff1a; 节点的左子树只包含 小于 当前节点的数。节点的右子树只包含 大于 当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。 示例 1&#x…

Java项目:基于SSM框架实现的心遗非遗文创电商平台(源码+数据库)

一、项目简介 本项目是一套基于SSM框架实现的心遗非遗文创电商平台 包含&#xff1a;项目源码、数据库脚本等&#xff0c;该项目附带全部源码可作为毕设使用。 项目都经过严格调试&#xff0c;eclipse或者idea 确保可以运行&#xff01; 该系统功能完善、界面美观、操作简单、…

Linux_CentOS7/8系统 - 关闭图形界面新增用户机制手册

Linux_CentOS7/8系统 - 关闭图形界面新增用户机制手册 在系统完成图形界面安装后重新启动后第一次登入&#xff0c;在图形界面会有新增用户页面&#xff0c;那如果取消关闭可以按以下操作&#xff1a; CTRLALTF2 root账号登录 yum remove gnome-initial-setup -y init 3 init …

微信小程序公共组件封装使用

1.在components目录下创建公共组件&#xff0c;以navbar为例 2.完成组件功能 3.调用&#xff0c;如果很多地方都会用到&#xff0c;建议放全局&#xff0c;如果不是则放在需要引用的文件中 3.1全局引用&#xff0c;在app.json做全局引用配置 3.2局部引用&#xff0c;在需要引入…

【C++庖丁解牛】C++11---统一的列表初始化 | auto | decltype | nullptr | STL中一些变化

&#x1f341;你好&#xff0c;我是 RO-BERRY &#x1f4d7; 致力于C、C、数据结构、TCP/IP、数据库等等一系列知识 &#x1f384;感谢你的陪伴与支持 &#xff0c;故事既有了开头&#xff0c;就要画上一个完美的句号&#xff0c;让我们一起加油 目录 1. C11简介2. 统一的列表…

3.1 海思SS928开发 - 烧写工具 - ToolPlatform 安装及配置

3.1 烧写工具 - ToolPlatform 安装及配置 ToolPlatform 安装 进入到开发虚拟机&#xff0c;将文件 ~/hiss928/sdk/ema_2.0.2.2/pc/ToolPlatform/ToolPlatform-1.0.11-win32-x86_64.zip 拷贝至 PC 上。PC 要求安装了 win7 及以上的操作系统。解压压缩包 ToolPlatform-1.0.11-w…

49-PCIE转网口电路设计

视频链接 PCIE转网口电路设计01_哔哩哔哩_bilibili PCIe转网口电路设计 1、PCIE转网口电路设计基本介绍 pcie转网口的设计&#xff0c;一般有intel (i350)和网讯&#xff08;wx1860&#xff09;两种方案。 2、PCIE转网口的方案 2.1、I350 2.2、WX1860 (网迅) 国产化&#…

java文件夹文件比较工具

import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.IOException; import java.util.HashSet; import java.util.Set;public class FolderFileNames {public static void main(String[] args) {// 假设您要读取的文件夹路径是 &q…

强大的系统监测工具 iStat Menus for mac最新中文激活版

iStat Menus for Mac是一款功能强大的系统监控工具&#xff0c;专为Mac用户设计&#xff0c;旨在帮助用户全面了解电脑的运行状态&#xff0c;提高电脑的性能和稳定性。 iStat Menus for mac最新中文激活版下载 该软件可以实时监测CPU使用率、内存占用、网络速度、硬盘活动等各…

AGV在提高物流效率方面的优势

agv “仓库是非常讲究高科技的地方” 因为降低成本 提高效率的唯一办法 就是自动化。” 仓储作为物流整个链条的核心点&#xff0c;做好仓储的生产调节才能有效的降低整体物流成本和提升效率&#xff0c;并通过高效、安全、低成本的物流来帮助提升整体供应链效率和能力。 a…

C++异常学习

C语言传统的处理错误的方式 传统的错误处理机制&#xff1a; 终止程序&#xff0c;如assert&#xff0c;缺陷&#xff1a;用户难以接受。如发生内存错误&#xff0c;除0错误时就会终止程序。返回错误码&#xff0c;缺陷&#xff1a;需要程序员自己去查找对应的错误。如系统的…
最新文章