vue中的路由传值与重调本路由改变参数
作者:李铁柱6 发布时间:2024-04-27 16:10:12
一.vue路由传值
在日常使用vue操作时,某些场景需要用到路由之间的传值,就是在使用router跳转到另外一个路由时需要携带参数一并传过去,这时候就需要用到路由传值
这里用举例的形式展示几种方法:
先来看看router文件
const routes = [{
path: '/',
component: A
},
{
path: '/B',
component: B
},
]
在这里我们需要在A路由跳转到B路由并携带一些值过去
方法一:(问号传值)
在A路由中定义事件或使用<router-link>,这里使用事件展示:
this.$router.push("B?id=1");
在B路由中获取传递的值:
console.log(this.$route.query.id);
方法二:query(此方法query的值会显示在地址栏中)
在A路由中定义事件或使用<router-link>,这里使用事件展示:
this.$router.push({
path: "B",
query: {
id: 1,
name: "litiezhu",
},
});
query方式与方法一一样,在B组件中都是通过query方法获取值:
console.log(this.$route.query);
此时页面开发者工具中的Console中显示:
{id: 1, name: 'litiezhu'}
方法三:params(此方法页面刷新数据会丢失)
在A路由中定义事件或使用<router-link>,这里使用事件展示,name必须与router文件定义的name名称一样:
this.$router.push({
path: "B",
params: {
id: 1,
name: "litiezhu",
},
});
在B组件中通过params方法获取值:
console.log(this.$route.params);
方法四:动态路由(此方法页码刷新数据不会丢失,推荐此方法!)
1.配置router文件
const routes = [{
path: '/',
component: A
},
{
path: '/B/:id',
component: B
},
]
2.在需要跳转的页面中
this.$router.push(/B/1);
3.在B组件中通过params方法获取值:
console.log(this.$route.params.id);
4.此时url地址显示为:
http://localhost:8080/#/B/1
二.重调本路由改变参数
有时候需要改变自己路由的参数来达到自己重调自己,举个例子:
小说网站的点击上下章节切换
其实就是在内部的单击事件中重调了自己的路由,不过传递的值不一样,点击后地址变为:
1.使用query方法,而不用再path指定路径了:
this.$router.push({ query: { id: 2 } });
url地址显示为:
http://localhost:8080/#/B/1?id=2
2.使用params方法,同样也不用再path指定路径了:
this.$router.push({ params: { id: 2 } })
url地址显示为:
http://localhost:8080/#/B/2
若要实现点击上下章切换不同的小说内容的功能,可以将query的id值进行加减,并重新调用后端接口获取数据来实现功能。
来源:https://blog.csdn.net/like896369216/article/details/124422253


猜你喜欢
- PhotoSwipe插件能实现手机端点击图片全屏放大 再双击图片放大等功能PhotoSwipe插件官方网站 http://www.photo
- Todo清单需要实现的功能有添加任务、删除任务、编辑任务,操作要关联数据库。任务需要绑定用户,部门。用户需要绑定部门。{#自己编写一个基类模
- virtualenv与virtualenvwrapper当涉及到python项目开发时为了不污染全局环境,通常都会使用环境隔离管理工具vir
- 本文实例为大家分享了html5 canvas在图片上画超链接的具体代码,供大家参考,具体内容如下1. html<canvas id=&
- 将无权点文件转化成邻接矩阵目前点文件是两列Excel代码,在进行复杂网络运算时需要转化成邻接矩阵。我在网上找了一个代码,稍微修改了下,亲测可
- 1、导入第三方库import urllib.request,urllib.error #请求网页from bs4 import
- 重点部分:点击表单的 submit按钮 触发form 部分 @submit=”submit”事件:submit事件 定义在js部分: pre
- 本文代码重点在于演示Python扩展库matplotlib.pyplot中fill_between()函数的用法。import numpy
- 在写正则表达式的时候总会遇到不少的问题, 特别是在表达式有多个元组的时候。下面看下re模块下的findall()函数和多个表达式元组相遇的时
- 本文实例讲述了Python实现PS图像调整黑白效果。分享给大家供大家参考,具体如下:这里用Python 实现 PS 里的图像调整–黑白,PS
- <?php class Mysql { private $conn; private $host; private $username
- 需要画框取消注释rectangleimport cv2import os,sys,shutilimport numpy as np# Ope
- 目录1 作用2 安装3 所有要运行的命令都放在 manager.py 中4 三种方式 创建命令4.1 方式一 创建 Command子类4.2
- 本文实例为大家分享了vue实现简单全选和反选的具体代码,供大家参考,具体内容如下<!DOCTYPE html><html
- 本文主要介绍下如何使用第三方库。1. 理解第三方库Python相当于一个手机,第三方库相当于手机里各种各样的APP。当我们想搭建网站时,可以
- 简洁版Windows10系统下,按Win+R键启动运行,输入cmd,进入命令窗口输入conda info --envs,查看conda 环境
- 本文实例讲述了Python实现删除列表中满足一定条件的元素。分享给大家供大家参考,具体如下:从列表中删除满足一定条件的元素。如:删除一个列表
- 接触php那么久,但是安装环境却很生疏,遇到了很多问题,借着百度,整理了些下面的方法问题一:mysql服务没有安装解决办法:在cmd操作下找
- 这个技巧将教你如何用css做出漂亮的文本按钮,有活力的按钮将节省你很多制作图片的时间,也能让你一天的工作中成为一个快乐的人,让我们一起看看效
- 1.安装 Selenium 模块Selenium支持很多浏览器,我选择的是Firefox浏览器。安装方法:①打开cmd;②输入命令 pip