vue路由传参-如何使用encodeURI加密参数

yizhihongxing

标题:Vue 路由传参 - 如何使用 encodeURI 加密参数

概述

Vue 路由传参是开发中常用的功能之一,通常我们直接在路由后面带上参数,例如:/blog?id=1。但是在实际应用中,由于参数内容可能包含一些特殊字符,如中文、空格等,因此需要对参数进行编码,以防止路由传参失效。其中,encodeURI() 可以将字符串进行编码,以便在 URI 中使用。

使用 encodeURI 编码传参

下面是一个使用 encodeURI 编码传参的示例,假设需要向 /blog 路由传递一个名称为 title 的参数:

this.$router.push('/blog?title=' + encodeURI('Vue 路由使用'));

在接收参数的页面中,可以通过 this.$route.query.title 获取解码后的参数:

export default {
  mounted() {
    console.log(decodeURI(this.$route.query.title)) // 输出:Vue 路由使用
  }
}

示例1:在路由地址中使用 encodeURI 编码参数

下面对一个实际应用场景进行说明:假设现在有一个搜索页面,用户可以在页面中输入关键字进行搜索。当用户搜索时,需要通过路由跳转到一个展示搜索结果的页面,并将用户输入的关键字作为参数传递过去。

  1. 在搜索页面的组件中,可以在点击搜索按钮时,通过 this.$router.push() 进行路由跳转,并在路由地址中使用 encodeURI 对搜索关键字进行编码。代码如下:
<template>
  <div>
    <input type="text" v-model="keyword">
    <button @click="handleSearch">搜索</button>
  </div>
</template>

<script>
export default {
  data() {
    return {
      keyword: '',
    }
  },
  methods: {
    handleSearch() {
    // 通过路由跳转到搜索结果页面,并向路由地址中传递编码后的关键字参数
      this.$router.push(`/search-result?keyword=${encodeURI(this.keyword)}`)
    },
  },
};
</script>
  1. 在搜索结果页面组件中,可以通过 this.$route.query.keyword 获取解码后的关键字参数。代码如下:
<template>
  <div>
    <p>搜索关键字:{{keyword}}</p>
  </div>
</template>

<script>
export default {
  mounted() {
    // 获取解码后的关键字参数
    this.keyword = decodeURI(this.$route.query.keyword)
  },
  data() {
    return {
      keyword: '',
    };
  },
};
</script>

示例2:在路由对象中使用 encodeURI 编码参数

此处代码仅做示例用,实际生产环境中代码需根据具体需求进行编写。

  1. 在需要跳转页面的组件中,可以通过 this.$router.push() 进行路由跳转,并在路由对象的 query 属性中设置编码后的参数。代码如下:
<template>
  <div>
    <ul>
      <li v-for="(item, index) in list" :key="index">
        <router-link :to="{path:'/book-detail', query: {bookId: encodeURI(item.id), bookName: encodeURI(item.name)}}">{{ item.title }}</router-link>
      </li>
    </ul>
  </div>
</template>

<script>
export default {
  data() {
    return {
      list: [
        { id: '1', name: 'Vue.js 权威指南', title: 'Vue.js 权威指南' },
        { id: '2', name: '深入浅出 webpack', title: '深入浅出 webpack' },
      ],
    }
  },
};
</script>
  1. 在路由获取页面组件中,可以通过 this.$route.query 获取路由对象中的参数。代码如下:
<template>
  <div>
    <p>书籍 ID:{{ bookId }}</p>
    <p>书籍名称:{{ bookName }}</p>
  </div>
</template>

<script>
export default {
  mounted() {
    // 获取解码后的参数
    this.bookId = decodeURI(this.$route.query.bookId)
    this.bookName = decodeURI(this.$route.query.bookName)
  },
  data() {
    return {
      bookId: '',
      bookName: '',
    };
  },
};
</script>

以上就是使用 Vue 路由传参时,如何使用 encodeURI() 进行参数编码的完整攻略,包括了两个实际应用场景的示例说明。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:vue路由传参-如何使用encodeURI加密参数 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • css的面试题目(前端常见面试题)

    下面是关于“css的面试题目(前端常见面试题)”的完整攻略: 一、选择器 请说明 CSS 中的 7 种基本选择器及其用法? 答:CSS 中的 7 种基本选择器包括: 类选择器(class):通过类名选取元素,以 . 开头。 id 选择器:通过 ID 名称选取元素,以 # 开头。 标签选择器:通过 HTML 元素名称选取元素,如 p、h1、div 等。 后代选…

    Vue 2023年5月29日
    00
  • vue项目中js文件使用vue的this实例说明

    在Vue项目中,我们通常对Vue的this实例进行操作来完成逻辑,但在JS文件中使用Vue的this实例时,需要注意一些问题。下面是详细讲解“Vue项目中JS文件使用Vue的this实例”的攻略。 1. 环境搭建 首先,我们需要在Vue项目中安装相关的包: npm install vue –save-dev 然后,在脚本中导入Vue: import Vue…

    Vue 2023年5月27日
    00
  • vue 调用 RESTful风格接口操作

    当我们使用 Vue 时,通常需要在前端与服务器端进行数据交互。RESTful 风格接口是一种比较常用的数据交互方式。本文将为您讲解如何在 Vue 中使用 RESTful 风格接口调用操作。 准备工作 在使用 RESTful 风格接口之前,需要安装 axios。axios 是一个优秀的 HTTP 客户端,可以用于发送异步请求并处理响应。可以使用 npm 进行安…

    Vue 2023年5月28日
    00
  • vue.js中created方法作用

    Vue.js 中的 created() 方法是 Vue 实例生命周期钩子函数之一,用于在 Vue 实例创建并构建完毕后被触发执行。接下来,我将详细介绍 created() 方法的作用和用法。 created() 方法的作用 在 Vue.js 应用中使用 created() 方法通常有以下一些作用: 初始化一些数据,包括组件中的变量,是最常用的 created…

    Vue 2023年5月27日
    00
  • v-html渲染组件问题

    简介: 在Vue.js开发中,v-html指令可以让我们插入HTML代码,有时我们会遇到将一个组件作为HTML输入到v-html指令中的需求。但是这样做存在一些问题,比如组件不会被实例化,无法正常响应数据等。下面是具体的解决方法。 步骤: 1.理解v-html的作用 v-html指令用来动态的输出已经被渲染成 HTML 的字符串,而不是DOM元素。可以将一个…

    Vue 2023年5月28日
    00
  • Vue 中指令v-bind动态绑定及与v-for结合使用详解

    让我详细讲解一下“Vue 中指令v-bind动态绑定及与v-for结合使用详解”,包含两条示例说明。 一、Vue 中指令v-bind动态绑定 在 Vue 中,通过指令 v-bind 可以将动态表达式绑定到 HTML 属性上。 例如,我们可以通过 v-bind 将 href 属性与 url 变量绑定起来,实现动态跳转链接。代码示例如下: <templat…

    Vue 2023年5月29日
    00
  • Springboot与vue实现文件导入方法具体介绍

    下面是“Springboot与Vue实现文件导入方法”的完整攻略。 1. 前置条件 在介绍如何实现文件导入功能之前,需要确保以下条件已经满足: 已经安装好Springboot和Vue开发环境; 熟悉Springboot和Vue的基本开发知识; 掌握基本的前端与后端的交互方式和Ajax异步请求的使用; 2. 实现思路 文件导入功能的实现思路如下: 前端页面中使…

    Vue 2023年5月27日
    00
  • 在axios中使用params传参的时候传入数组的方法

    在axios中使用params传参时,如果需要传入数组参数,可以按照以下步骤来进行。 在调用axios.get或axios.post时,将参数放在params或data中,并设置paramsSerializer的值为Qs.stringify,即使用qs对数组参数进行序列化。 示例代码: import axios from ‘axios’; import Qs…

    Vue 2023年5月29日
    00
合作推广
合作推广
分享本页
返回顶部