vue实现跳转传参查询

vue实现跳转传参查询:

应用场景:外部链接携参跳转目标页时,避免多次输入查询信息查询
目标需求:登录及非登录状态均可跳转自动查询
避坑指南:token失效时需要重新缓存及路由导航缓存判断

简单实现:缓存信息,自动查询。

一,缓存跳转信息。

1,路由拦截器方法中传入name:

handleAuth(code,name, () => {}

2,handleAuth方法中 ,非登录状态缓存传参信息

//获取token,非登录状态时,非首页或默认页面时记住跳转路径及携参
//handleAuth方法中缓存跳转路径及携参:
export const handleAuth = (code,name,callback) => {
 if(!token){
        if(name!='home'&&name!='rootPath'){
          localStorage.setItem('targetPathName', name);
          let params = new URL(location.href).searchParams;
          let [id] = [params.get('id')];
          if (id != undefined) {
            localStorage.setItem('queryId', id);
          }
        }
  }
}

3.main.vue中,跳转判断。
判断非目标页时跳转首页,导航标签缓存页不存在时也跳目标页,跳转后清除缓存。

 let getPathName=localStorage.getItem('targetPathName');
    let getQueryId=localStorage.getItem('queryId');
    // 跳转页不在标签栏中时跳首页(目标页除外,目标页不在标签栏中时不跳首页)
    if (!this.tagNavList.find(item => item.name === this.$route.name)&&this.$route.name !=='target-page'&&getPathName==null) {
      this.$router.push({
        name: home
      });
    }
    //非首页,携参跳转登录目标页
    if(getPathName!=null) {
      if(getQueryId!=null&&getPathName=='target-page'){
          this.$router.push({
                  name: getPathName,
                  query: {
                    Id:getQueryId
                  }
          });
      localStorage.removeItem('queryId');
       }else{
        this.$router.push({
          name: getPathName
        });
      }
      localStorage.removeItem('targetPathName');
    }

二,token失效时缓存处理:

1,登录状态时,token失效刷新token退出登录时,缓存数据数据丢失,重新再次缓存

export const setTargetInfo = () => {
  let name=window.location.pathname.split("/").slice(-1)
  let params = new URL(location.href).searchParams;
  let [id] = [params.get('id')];
  if(name&&name[0]!=undefined){
    if(name[0]=='target-page'&&id != undefined){
        localStorage.setItem('targetPathName',name[0]);
        localStorage.setItem('queryId', id);
    }
  }
}

2.axios方法拦截中,退出登录前,缓存跳转信息

 if(error.request.status == 401&&!url.includes('api/getToken')){
          return refreshToken().then(res=> {
            //...刷新token处理  
            return instance(config)
          }).catch(err => {
            //token过期时,退出登录前再次缓存上次跳转信息  
            setTargetInfo();
            //退出登录
            logOut();
            return Promise.reject(err)
          }).finally(() => {
            setTargetInfo();
          })
 }
  

三,目标页自动查询:

   created(){
		let params = new URL(location.href).searchParams;
	    let [id] = [params.get('id')];
	    if (id != undefined) {
	       //获取参数
	    }else{
	       //清空参数
	    } 
	   //查询列表
	   this.getList();   
}

四,效果图

在这里插入图片描述

更多精彩:

1.vue+iView 实现可输入的下拉框添加链接描述
2.实现搜索的历史记录功能(浏览器记录)
3.路由传值实现分类搜索
4.调用第三方接口跨域问题

5.vue+iView 权限实践之动态显示侧边栏菜单
6.vue+iView 跳转子菜单父级菜单保持高亮
7.vue+iView 树形菜单回显与选中

8.vue+iView 实现导入与导出excel功能
9.vue+iView table分页勾选记忆功能

喜欢就多多点赞关注。
在这里插入图片描述

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

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

相关文章

2024年,AI 掀起数据与分析市场的新风暴

2024 年伊始,Kyligence 联合创始人兼 CEO 韩卿在其公司内部的飞书订阅号发表了多篇 Rethink Data & Analytics 的内部信,分享了对数据与分析行业的一些战略思考,尤其是 AI 带来的各种变化和革命,是如何深刻地影响这个行业乃至…

jupyter出现问题ModuleNotFoundError: No module named ‘exceptiongroup‘

今天使用pyg的jupyter环境发现这个环境没法用, 所以只能把这个kernel给重删了然后再装,操作记录如下 查看kernel jupyter kernelspec list注意不是jupyter kernel --list 需要加关键字spec, 删除kernel jupyter kernelspec remove pyg当重新安装这个kernel时可能…

macos Android平台签名证书(.keystore)

一、申请appid的使用说明(有appid的请忽略申请appid) 创建应用 申请的appid在源码视图填写后会自动生成一个对应的包名 ⚠️注意:申请appid的时候应用名称和项目名称保持一致。 二、 Android如何使用自用证书进行打包 1.找到安装jdk的路径…

【学习笔记】vue3的watch

尚硅谷Vue2.0Vue3.0全套教程丨vuejs从入门到精通 课程 P152节 笔记: 情况一:监视ref所定义的一个响应式数据 情况二:监视ref所定义的多个响应式数据 这两种情况比较简单,正常写就ok: 情况三:监视reactive所…

Qt|QPushButton控件讲解

前提 按钮分为了四种状态:常态、聚焦、按下、禁用 前一段时间更新了MFC框架下CButton的自绘。因为MFC框架下的按钮限制性很高,所以只能由自绘实现各种风格,但是QT框架完美的解决了这个问题,我们只需要了解如何调用,就…

MySQL-窗口函数

介绍: MSQL8.0新增窗口函数商口函数又被称为开窗函数,与Oracle窗口函数类似,属于MysaL的一大特点 非聚合窗口函数是相对于聚函数来说的。聚合函数是对一组数据计算后返回单个值(即分组),非聚合函数一次只会处理一行数据。窗口聚…

buffer/cache导致内存不足的案例分析

目录 一、项目简介 二、问题分析 三、问题处理 什么是buffer/cache? buffer/cache 需要注意的一些特点 如何进行手动 buffer/cache 回收 手动 buffer/cache 回收可能出现的问题 如何让系统自动回收buffer/cache vm.min_free_kbytes 四、参考文献 一、项目…

亚信安慧AntDB:AntDB-M元数据锁(八)

5.6 死锁检测 图4-死锁等待 每个线程在进入锁等待前,都会先进行死锁检测,避免陷入死锁等待。在检测前,会先将自己获取到的unobtrusive锁进行物化,即将锁放入锁的授予列表中,以便死锁检测能区分锁的归属线程。然后设置…

Proto文件如何生成JavaProto对象?

首先安装好Protocol Buffer的编译器 Protocol Buffer: version:2.6.1 link: 链接直达 根据电脑环境进行下载,Widnwos 32/64位就选择win32是没问题的,楼主亲测 1.proto文件编写 Person.proto public class Person {String name;int id;String email…

【高阶数据结构】AVL树

文章目录 前言1. 什么是二叉搜索树2. 什么是AVL树3. AVL树节点的定义4. AVL树的插入4.1 新节点插入较高右子树的右侧4.2 新节点插入较高左子树的左侧4.3 新节点插入较高左子树的右侧4.4 新节点插入较高右子树的左侧插入操作完整代码插入操作总结 AVL树的验证AVL树的删除AVL树性…

git push后,如何撤销git log上的错误注释

修改了本地的代码,执行了下面的操作,提交之后,怎么样修改 git add ********(文件名)//git add 添加修改文件名之后 git commit //git commit 在当前分支提交,编写提交注释 git push //git push 提交修…

虹科干货 | 如何使用nProbe Cento构建100 Gbit NetFlow 传感器

本文是一份全面的指南,解释了如何使用nProbe Cento构建一个高效的100 Gbit NetFlow传感器。旨在帮助大家充分利用NetFlow技术,以监控和分析高速网络流量。 当需要监控分布式网络,了解流经上行链路或关键网段的网络流量时,NetFlow…

ES实战回顾

1、你用的集群节点情况? 一个ES集群,18个节点,其中3个主节点,15个数据节点,500G左右的索引数据量,没有单独的协调节点,它的每个节点都可以充当协调功能; 2、你们常用的索引有哪些&a…

【游戏服务器部署】幻兽帕鲁服务器一键部署保姆级教程,游戏私服还是自己搭建的香

在帕鲁的世界,你可以选择与神奇的生物「帕鲁」一同享受悠闲的生活,也可以投身于与偷猎者进行生死搏斗的冒险。帕鲁可以进行战斗、繁殖、协助你做农活,也可以为你在工厂工作。你也可以将它们进行售卖,或肢解后食用。—幻兽帕鲁 想要…

AI工具【OCR 01】Java可使用的OCR工具Tess4J使用举例(身份证信息识别核心代码及信息提前方法分享)

Java可使用的OCR工具Tess4J使用举例 1.简介1.1 简单介绍1.2 官方说明 2.使用举例2.1 依赖及语言数据包2.2 核心代码2.3 识别身份证信息2.3.1 核心代码2.3.2 截取指定字符2.3.3 去掉字符串里的非中文字符2.3.4 提取出生日期(待优化)2.3.5 实测 3.总结 1.简…

RocketMq5源码搭建

最近公司使用到了RocketMQ,所以打算研究一下RocketMQ 准备自己动手搭建一下RocketMq源码 前提 需要搭建jdk环境,jdk版本需要高于1.8 首先 从github 拉源码 源码地址:rocketMq源码传送门 启动namesrv 启动之前需要配置一下ROCKERMQ_HOME 配置如下&a…

力扣hot100 括号生成 递归回溯 超简洁版

Problem: 22. 括号生成 Code 使用 static 会被复用 class Solution {List<String> ans new ArrayList<>();public List<String> generateParenthesis(int n){dfs(n, n, "");return ans;}/*** param l 左括号待补个数* param r 右括号待补个数*…

基于SpringBoot+Vue的甘肃非物质文化网站(V2.0),附源码

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;…

如何在Shopee泰国站点进行有效的选品

在Shopee泰国站点进行选品时&#xff0c;卖家可以采取一些策略来提高产品的市场竞争力和销售业绩。以下是一些可以遵循的策略&#xff1a; 先给大家推荐一款shopee知虾数据运营工具知虾免费体验地址&#xff08;复制浏览器打开&#xff09;&#xff1a;D。dDqbt。Com/JU5o知虾…

财务数据可视化大屏:企业决策的智慧之眼

在大数据时代&#xff0c;财务数据的管理与分析对于企业的决策和发展至关重要。然而&#xff0c;面对海量的数据&#xff0c;如何快速、准确地获取有价值的信息&#xff0c;一直是企业面临的挑战。这时&#xff0c;财务数据可视化大屏的出现&#xff0c;为企业提供了一个全新的…