vue-router路由中对query中的参数进行加密

2023-11-03

vue-router路由中对query中的参数进行加密

源码地址在文末

在创建路由的时候,添加两个方法

  • stringifyQuery: 序列化传入的query参数,方法可以接收一个对象参数

    new Router的时候传递这个属性,在序列化query参数的就执行这个方法,不会执行默认的方法,序列化后在地址栏显示序列化之后的参数

  • parseQuery: 解析地址栏参数,方法接收一个字符串参数

    new Router的时候传递这个属性,在解析query参数的时候,回执行这个方法,不会在执行默认的方法,

    注: 这个方法只解析path中的参数,或者浏览器刷新的时候的地址栏的参数,不会对在query参数对处理,如:

    ```javascript
        this.$router.push({
            path: "foo?a=123",
            query: {
                b: 345
            }
        })
    ```
    

    在执行这段代码的时候,parseQuery方法不会对query:{b: 345}进行解析,会解析path:"foo?a=123"中的a=123的字符串

使用方式:

例:

  • router/index.js
import Vue from "vue"
import VueRouter from "vue-router";
import {
    stringifyQuery, parseQuery } from "./utils/query";


Vue.use(VueRouter);

const routes = [
    {
   
        path: "/",
        name: "home",
        component: () => import(/* webpackChunkName: "home" */"../views/Home")
    },
    {
   
        path: "/foo",
        name: "foo",
        component: () => import(/* webpackChunkName: "foo" */"../views/Foo")
    },
    {
   
        path: "/bar",
        name: "bar",
        component: () => import(/* webpackChunkName: "bar" */"../views/Bar")
    }
];

const router = new VueRouter({
   
    mode: 'history',
    base: process.env.BASE_URL,
    stringifyQuery: stringifyQuery,
    parseQuery: parseQuery,
    routes
});

export default router

  • router/utils/query.js
import {
    getEncryptToBase64 as encrypt, getDecryptByBase64 as decrypt } from "./encryption"
const encodeReserveRE = /[!'()*]/g
const encodeReserveReplacer</
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vue-router路由中对query中的参数进行加密 的相关文章

  • 通过关键参数保持视图路由器处于活动状态

    如何分别使用不同的参数使 vue router 保持活动状态 TL DR 让我们考虑一个开发 Facebook 等网站的例子 每个用户都有一个个人资料页面 因为有很多用户 我们不想迭代所有用户并在加载时加载所有个人资料页面 如下所示
  • 【vue】$bus 跨组件调用方法

    1 新建bus js import Vue from vue 使用 Event Bus const bus new Vue export default bus 2 main js引用 import bus from libs bus Vu
  • 如何配置 Vue 路由器来响应查询字符串?

    我的路由器配置如下 它有效并且做了它应该做的事情 import Demo1 from vuex modules demo demo1 vue import Demo2 from vuex modules demo demo2 vue exp
  • Vuejs - 未捕获类型错误:无法重新定义属性:$router

    我对 Vuejs 比较陌生 并且已经被以下错误困扰了一段时间 页面加载时出现 未捕获的类型错误 无法重新定义属性 router在 Function defineProperty 在 Function install VM2179 vue r
  • 如何使用Vue登录后渲染标题和侧边栏

    我有一个 Vue js 应用程序 目前我使用不同的页面渲染它 我遇到了一个问题 当我第一次登录时 它只会渲染单个主要组件 即根据 vue 路由器的页面 我正在寻找一种方法来运行我的登录功能 然后转到 dashboard但我希望它重新渲染我的
  • 使用 Vue-router 进行 Firebase 身份验证检查

    问题是 vue router 的 beforeEnter 比 main js 中的 beforeCreate 钩子更早触发 并且有第二个延迟 而在重新加载 vuex 操作后将用户设置为状态 这会导致用户被弹回登录页面 如何延迟 vue ro
  • 如何使用 vue-router 将数据从一个视图传递到另一个视图

    当使用vue router with vue文件中 没有记录的方法将数据从一个视图 组件传递到另一个视图 组件 让我们进行以下设置 main js import Vue from vue import VueRouter from vue
  • Vue-Router:页面刷新后视图返回登录页面

    我正在使用 Vuejs 并使用 vue router 和 vuex 构建一个应用程序 我现在陷入困境 因为在用户登录后 我的应用程序重定向到仪表板 但如果我刷新页面 他会再次返回登录页面 为了验证用户是否已登录 我的应用程序检查本地存储是否
  • vue项目日期处理day.js

    dayjs安装 1 npm 安装 npm install dayjs save 2 项目使用 import dayjs from dayjs ES 2015 dayjs format 使用介绍 1 秒 获取或设置秒 接受0到59的数字 如果
  • 在自定义指令中模拟 v-if 指令

    我需要销毁 v if 等自定义指令中的元素 如果条件失败 则禁止创建项目 我尝试这个 export const moduleDirective DirectiveOptions DirectiveFunction el binding vn
  • 将 Vue 部署到 GitHub Pages。 vue-router 错误

    我在使用 vue cli v3 0 部署 Vue 应用程序构建时遇到了一些问题 到 GitHub 页面 我在用着subtree https gist github com cobyism 4730490发送dist文件夹仅gh pages分
  • 黑豹程序员-字符串中查找出重复的字符串

    Collections frequency codeList element 字符串element 在codeList集合中重复的次数 List
  • Vue.js 路由器:历史模式和 AWS S3 (RoutingRules)

    我有一个使用 Amazon S3 和 Cloudflare 启动并运行的 Vue js 应用程序 当我打开索引并浏览到 dashboard 时 一切正常 但是 当我直接在新选项卡中打开仪表板之类的路线或刷新页面时 我从 S3 收到以下错误
  • vue-router 的屏幕阅读器和选项卡焦点重置

    似乎焦点重置和屏幕阅读器注意到路线变化不是 vue router 的一部分 我可以理解为什么 vue 可能会忽略这一点 因为用例可能会有所不同 但我对缺乏有关可访问性 SPA 路由器的信息感到惊讶 这似乎是一个常见的 SPA 问题 我很好奇
  • vue-router - 使用新导航取消从“/”到“/password”的导航

    尝试导航到密码页面 vue router 抛出此错误 Uncaught in promise Error Navigation cancelled from to password with a new navigation 导航到密码页面
  • Vue 3 - 访问路由器视图实例以调用子方法

    我正在尝试将 Vue 2 x 应用程序迁移到 Vue 3 x 不幸的是 在过去的两天里 我正在努力寻找解决这个简单问题的方法 我的应用程序适用于移动设备 在屏幕顶部有一个顶部栏 左侧和右侧有 2 个上下文按钮 这些按钮触发与我的视图中加载的
  • Nuxt.js - 在页面中添加两个布局

    我是初学者Nuxt js我正在将 Vue 项目转换为 Nuxt js 并且我想在一个页面上使用两种布局 默认的一个和另一个 逻辑是这样的 第一个布局是 默认 或所有页面上的标题 第二个布局是设置栏 In settings我的页面有 3 条路
  • vue-router 导航到相同的路线并重新运行安装的钩子

    如何使用 router link 导航到当前路由并重新运行安装的钩子 HTML div div
  • Vuejs 刷新时路由重定向

    当我在浏览器中使用刷新按钮或点击f5在键盘上 它不会刷新我的页面 而是重定向到主页 Code router js import Vue from vue import VueRouter from vue router import sto
  • 如何将外部JS脚本添加到VueJS组件中?

    我必须为支付网关使用两个外部脚本 现在两者都被放入index html file 但是 我不想在开始时加载这些文件 仅当用户打开特定组件时才需要支付网关 using router view 有办法实现这个目标吗 Thanks 解决这个问题的

随机推荐

  • Java 8 中的抽象类和接口到底有啥区别?

    在我们面试时也会经常遇到面试官问抽象类和接口的区别是什么 大部人肯定会说 接口中的所有方法都是抽象的 抽象类中的方法除了抽象方法还可以写实现方法 如果你还这样回答那你就 OUT 啦 要跟上形式 这个问题我在面试一个 39 岁的程序员时 他居
  • Redis配置文件解读

    转载自 http www cnblogs com daizhj articles 1956681 html 对部分配置选项做了一些说明 把配置项目从上到下看了一遍 有了个大致的了解 暂时还用不到一些高级的配置选项 先放在这 用到的时候再回来
  • Teradata SQL 线性回归函数

    基于budget amounts排队得到前三个部门 显示部门号和预算 SELECT department number salary amount RANK salary amount AS Rank FROM dapartment QUA
  • Typescript(九)配置文件 tsconfig.json

    TypeScript 使用 tsconfig json 文件作为其配置文件 当一个目录中存在 tsconfig json 文件 则认为该目录为 TypeScript 项目的根目录 通常 tsconfig json 文件主要包含两部分内容 指
  • unity

    一 理解我们要做的事 原本图片放入文件夹后是Default 默认 模式 但是需要大量处理图片的时候 我们希望它拖进去就是sprite模式 我们想修改unity原本的功能 二 unity是允许我们去修改它本身的一些功能的 你可以定制属于你的u
  • JVM系列(十) 垃圾收集器之 Parallel Scavenge/Old

    上篇文章我们讲解了单线程垃圾收集器 Serial SerialOld 与之相对应的多线程垃圾收集器就是 Parallel Scavenge Old 本文我们讲解下多线程垃圾收集器 Parallel Scavenge Old 垃圾收集器 新生
  • 2018年TI杯电子设计竞赛感悟

    2018年7月27日 电赛结束已经有三四天的时间了 今年的感悟和去年的相比很是不同 去年大一 刚刚入门单片机 搞点东西也都是瞎搞 没有一个像模像样的作品 即使是有也都是一些次品 半成品 得知学校选拔学生参加全国大学生电子设计竞赛 单数年为国
  • linux添加sshkey,linux 配置 ssh密钥登陆

    配置这个其实很简单 一点也不复杂 首先需要在服务器安装openssh 如果你不安装你是找不到配置密钥登陆的配置文件的 yum install y openssh 安装好后就需要去配置密钥登陆了 vi etc ssh sshd config
  • kali持久化U盘镜像安装教程

    https zhuanlan zhihu com p 436210497 utm id 0
  • opencv 轻松入门 面向python pdf_面向Python 的OpenCV轻松入门——第三章(3)

    3 3 按位逻辑运算 逻辑运算是一种非常重要的运算方式 图像处理过程中经常要按照位进行逻辑运算 本节 介绍 Opencv中的按位逻辑运算 简称位运算 在 Opencv内 常见的位运算函数如表3 1所示 表3 1 常见的位运算函数 函数名 基
  • linux的依赖关系

    依赖关系最简单的一个理解就是 Windows 上你玩游戏结果提示 directx 版本过低无法运行 以及常见的运行某个程序之后提示 mfc71 dll 未找到 还有就是用个软件结果安装说明上让你先去安装 net Linux 的依赖关系因为他
  • iOS开发入门教程

    当涉及到详细的教程和排版要求时 纯文本形式的回答无法满足您的需求 以下是一个简单的iOS开发入门教程大纲 您可以按照该大纲进行深入学习和实践 iOS开发入门教程大纲 1 开发环境搭建 下载和安装Xcode 配置iOS模拟器 2 Swift语
  • Echarts

    目录 1 1 什么是ECharts 1 2 ECharts基本使用 1 3 ECharts标题组件 1 4 ECharts工具箱组件 1 5 ECharts弹窗组件 1 6 ECharts饼状图 1 7 ECharts航线图 更详细的教程请
  • spice协议详解(二):spice支持功能和优势

    SPICE Simple Protocol for Independent Computing Environments 是目前最有潜力的开源虚拟桌面协议 最初是由Qumranet开发 后来被RedHat收购并开源 经过几年的社区开发 sp
  • 爆肝整理,Python自动化测试-Pytest参数化实战封装,一篇打通...

    目录 导读 前言 一 Python编程入门到精通 二 接口自动化项目实战 三 Web自动化项目实战 四 App自动化项目实战 五 一线大厂简历 六 测试开发DevOps体系 七 常用自动化测试工具 八 JMeter性能测试 九 总结 尾部小
  • [大话IT]圈套玄机—《圈子圈套》中的案例分析

    2006 02 22 00 20 14 Filter pattern 楼主 supernal pig 地址 http www12 tianya cn new Publicforum Content asp idWriter 2974942
  • 【拒绝主观!】C++继承中父类的构造函数和析构函数调用情况

    C 继承中父类的构造函数和析构函数调用情况 父类构造函数调用规则 子类会默认调用父类的无参构造函数 且发生在子类所有代码执行之前 原因 父类里面的一些成员可能被设置为private 导致该成员变量只能由父类自己初始化 如果父类不存在无参构造
  • java求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+2....(java50道经典编程题)

    题目 求s a aa aaa aaaa aa a的值 其中a是一个数字 例如2 22 222 2222 22222 此时共有5个数相加 几个数相加有键盘控制 对于这个题目来说还是比较简单的不过我在编码过程中好像漏了点东西 调试了几遍才好 这
  • React路由懒加载的方式之一

    第一步 在组件中引入 lazy Suspense这两个api import React Component lazy Suspense from react 导入我们的路由组件 示例 import Home from Home import
  • vue-router路由中对query中的参数进行加密

    vue router路由中对query中的参数进行加密 源码地址在文末 在创建路由的时候 添加两个方法 stringifyQuery 序列化传入的query参数 方法可以接收一个对象参数 在new Router的时候传递这个属性 在序列化q