vue router动态路由设置参数可选问题


Posted in Javascript onAugust 21, 2019

在日常工作中,我们需要将匹配到的所有路由,映射到一个组件上。

如下代码想要达到的效果:

不传page和id,则映射到user默认list页面

传page和id,根据page不同,显示不同的页面

问题

使用以下代码片段是不能实现以上效果的,因为默认情况下page和id参数是必传的,如果不传参数,则会根据默认路由跳转到home页面

new Router({
  routes: [
    {
      path: '/user/:page/:id',
      name: 'User',
      component: () => import('pages/user')
    },
    {
      path: '*',
      redirect: '/home'
    }
  ]
})

解决方法

参数配置改成可选的

path: '/user/:page?/:id?'

ps:下面看下vue-router 动态添加 路由

   动态添加路由可以用了做权限管理。登录后服务器端返回权限菜单,前端动态添加路由  然后在设置菜单

 1、vue-router 有方法router.addRoutes(routes) 动态添加更多的路由规则。参数必须是一个符合 routes 选项要求的数组。

           使用方法 

this.$router.options.routes[0].children.push({//插入路由
 name:'list',
 path: 'list',
 component: resolve => require(['../template/list.vue'], resolve)//将组件用require引进来
});
this.$router.addRoutes(this.$router.options.routes);//调用addRoutes添加路由

我的路由文件:

export default new Router({
 routes: [
  {
   path: '/',
 
   component: index,
  },
  {
   path: '/login',
   name: 'login',
   component: login
  }
 ]

总结

以上所述是小编给大家介绍的vue router动态路由设置参数可选问题,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

Javascript 相关文章推荐
javascript window.opener的用法分析
Apr 07 Javascript
JavaScript实现页面滚动图片加载(仿lazyload效果)
Jul 22 Javascript
js如何实现设计模式中的模板方法
Jul 23 Javascript
avalon js实现仿微博拖动图片排序
Aug 14 Javascript
AngularJs表单校验功能实例代码
Feb 09 Javascript
浅析vue中常见循环遍历指令的使用 v-for
Apr 18 Javascript
浅谈针对Vue相同路由不同参数的刷新问题
Sep 29 Javascript
express+vue+mongodb+session 实现注册登录功能
Dec 06 Javascript
JS使用iView的Dropdown实现一个右键菜单
May 06 Javascript
Vue实现点击显示不同图片的效果
Aug 10 Javascript
Vue监听滚动实现锚点定位(双向)示例
Nov 13 Javascript
微信小程序实现modal弹出框遮罩层组件(可带文本框)
Dec 20 Javascript
Element ui 下拉多选时新增一个选择所有的选项
Aug 21 #Javascript
js时间转换毫秒的实例代码
Aug 21 #Javascript
VUE的history模式下除了index外其他路由404报错解决办法
Aug 21 #Javascript
详解webpack引用jquery(第三方模块)的三种办法
Aug 21 #jQuery
jqGrid表格底部汇总、合计行footerrow处理
Aug 21 #Javascript
Vue仿微信app页面跳转动画效果
Aug 21 #Javascript
Angular 中使用 FineReport不显示报表直接打印预览
Aug 21 #Javascript
You might like
mysql_connect localhost和127.0.0.1的区别(网络层阐述)
2015/03/26 PHP
PHP判断是否连接上网络的方法
2015/07/01 PHP
php导出中文内容excel文件类实例
2015/07/06 PHP
jQuery+php简单实现全选删除的方法
2016/11/28 PHP
PHP7数组的底层实现示例
2019/08/25 PHP
PHP 判断字符串是中文还是英文, 或者是中英混合
2021/03/09 PHP
用jquery模仿的a的title属性(兼容ie6/7)
2013/01/21 Javascript
javascript获取元素偏移量的方法有哪些
2014/06/24 Javascript
Javascript对象Clone实例分析
2015/06/09 Javascript
js实现Form栏显示全格式时间时钟效果代码
2015/08/19 Javascript
jquery特效 点击展示与隐藏全文
2015/12/09 Javascript
用JS生成UUID的方法实例
2016/03/30 Javascript
JS中用三种方式实现导航菜单中的二级下拉菜单
2016/10/31 Javascript
javascript获取以及设置光标位置
2017/02/16 Javascript
基于vue cli 通过命令行传参实现多环境配置
2018/07/12 Javascript
Vuejs+vue-router打包+Nginx配置的实例
2018/09/20 Javascript
如何优雅地在vue中添加权限控制示例详解
2019/03/07 Javascript
详解可以用在VS Code中的正则表达式小技巧
2019/05/14 Javascript
Vue中跨域及打包部署到nginx跨域设置方法
2019/08/26 Javascript
JavaScript eval()函数定义及使用方法详解
2020/07/07 Javascript
npm ci命令的基本使用方法
2020/09/20 Javascript
javascript实现时钟动画
2020/12/03 Javascript
Django数据库操作的实例(增删改查)
2017/09/04 Python
python获取微信企业号打卡数据并生成windows计划任务
2019/04/30 Python
python迭代器常见用法实例分析
2019/11/22 Python
Selenium使用Chrome模拟手机浏览器方法解析
2020/04/10 Python
HTML5实现预览本地图片
2016/02/17 HTML / CSS
美国最大的高尔夫发球时间预订网站:TeeOff.com
2018/03/28 全球购物
世界闻名的衬衫制造商:Savile Row Company
2018/07/30 全球购物
一些.net面试题
2014/10/06 面试题
2014年小班元旦活动方案
2014/02/16 职场文书
工伤死亡理赔协议书
2014/10/20 职场文书
2014年生产管理工作总结
2014/12/23 职场文书
2015年酒店工作总结范文
2015/04/07 职场文书
建筑工程挂靠协议书
2016/03/23 职场文书
springcloud整合seata
2022/05/20 Java/Android