转载自 vue 动态修改路由参数import merge from 'webpack-merge'; 修改原有参数 this.$router.push({ query:merge(this.$route.query,{'maxPrice':'630'})}) 新增一个参数:this.$router.push({ query:merge(this.$ro...
在项目中,比如进入我的订单页面,订单页面有不同的几个菜单,如:待付款、待发货、待收货、待收货等;
我们想要实现从不同的菜单点击进入订单详情页,再返回订单列表的时候,还是定位在之前对应的菜单,这时候就需要用到替换
路由
参数
。
我们可以在执行点击菜单的时候,就替换掉
路由
地址的
参数
,以便于之后返回该订单列表的时候,还是定位在对应的菜单项。
替换
路由
地址
参数
,代码执行如下:
this.$router.replace({ name: 'Orders', params: { tabId: index } })
最近在写
vue
项目,需要由后台传来当前用户对应权限的
路由
表,前端通过调接口拿到后处理(后端处理
路由
),就是配置
vue
动态
路由
啦。
由于错信了一些网上的文章:(,导致在这个问题上耗费了不少时间,想想,还是自己写一篇文章来记录一下那些遇到的坑吧。
接下来手把手记录一下,如何从零开始配置
vue
动态
路由
。
首先呢,先看看静态
路由
的配置,简单预览一下,熟悉的可以直接跳过,说这部分,是为了熟悉一下
路由
的配置。
静态
路由
的回顾
1.创建router/index.js文件
import
Vue
from 'v
新增一个
参数
:
this.$router.push({
query:merge(this.$route.query,{'addParams':'我是新增的一个
参数
,哈哈哈哈'})
替换所有
参数
:
import
Vue
from '
vue
'
import App from './App.
vue
'
import
Vue
Router from '
vue
-router'
import router from './router'
Vue
.use(
Vue
Router)
Vue
.config.productionTip = false
new
Vue
({
某些特定情况下想改变this.$route.query中的数据(就是地址栏中的
参数
),是不能通过直接赋值来改变的,我目前知道的一个办法是下载webpack-merge依赖包实现:
npm i webpack-merge
import merge from 'webpack-merge';
this.$router.push({
query:merge(this.$route.query,{'id':'630'})
如果id本来存在的话就是
修改
id的值,不存在的话就
阅读目录1、在模块化工程中使用它2、使用
vue
-router的步骤:3、
路由
的默认路径4、HTML5的History模式5、router-link补充6、
路由
代码跳转7、
动态
路由
8、
路由
懒加载9、认识嵌套
路由
10、传递
参数
11、$ route和$ router是有区别的12、导航守卫使用13、keep-alive遇见
vue
-router
1、在模块化工程中使用它
(因为是一个插件, 所以可以通过
Vue
.use()来安装
路由
功能)
第一步:导入
路由
对象,并且调用
Vue
.use(
Vue
Router)
let query = this.$router.history.current.query;
let path = this.$router.history.current.path;
//对象的拷贝
let newQuery = JSON.parse(JS...
就可以
修改
了
但是当已有query对象里面
修改
其中一个值,就会发现虽然this.$route.query发生改变但是浏览器的url上的
参数
并没有发生变化, 尝试将已有的
参数
进行深拷贝突然发现就可以了
let newQuery= JSON.parse(JSON.stringify(this.$route.query));
newQuery.index = 2;