vue多层嵌套路由实例分析


Posted in Javascript onMarch 19, 2019

本文实例讲述了vue多层嵌套路由。分享给大家供大家参考,具体如下:

多层嵌套:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <script src="bower_components/vue/dist/vue.js"></script>
  <script src="bower_components/vue-router/dist/vue-router.js"></script>
  <style>
    .v-link-active{
      font-size: 20px;
      color: #f60;
    }
  </style>
</head>
<body>
  <div id="box">
    <ul>
      <li>
        <a v-link="{path:'/home'}">主页</a>
      </li>
      <li>
        <a v-link="{path:'/news'}">新闻</a>
      </li>
    </ul>
    <div>
      <router-view></router-view>
    </div>
  </div>
  <template id="home">
    <h3>我是主页</h3>
    <div>
      <a v-link="{path:'/home/login'}">登录</a>
      <a v-link="{path:'/home/reg'}">注册</a>
    </div>
    <div>
      <router-view></router-view>
    </div>
  </template>
  <template id="news">
    <h3>我是新闻</h3>
  </template>
  <script>
    //1. 准备一个根组件
    var App=Vue.extend();
    //2. Home News组件都准备
    var Home=Vue.extend({
      template:'#home'
    });
    var News=Vue.extend({
      template:'#news'
    });
    //3. 准备路由
    var router=new VueRouter();
    //4. 关联
    router.map({
      'home':{
        component:Home,
        subRoutes:{
          'login':{
            component:{
              template:'<strong>我是登录信息</strong>'
            }
          },
          'reg':{
            component:{
              template:'<strong>我是注册信息</strong>'
            }
          }
        }
      },
      'news':{
        component:News
      }
    });
    //5. 启动路由
    router.start(App,'#box');
    //6. 跳转
    router.redirect({
      '/':'home'
    });
  </script>
</body>
</html>

效果图:

vue多层嵌套路由实例分析

路由其他信息:

/detail/:id/age/:age
{{$route.params | json}}    ->  当前参数
{{$route.path}}    ->  当前路径
{{$route.query | json}}    ->  数据

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <script src="bower_components/vue/dist/vue.js"></script>
  <script src="bower_components/vue-router/dist/vue-router.js"></script>
  <style>
    .v-link-active{
      font-size: 20px;
      color: #f60;
    }
  </style>
</head>
<body>
  <div id="box">
    <ul>
      <li>
        <a v-link="{path:'/home'}">主页</a>
      </li>
      <li>
        <a v-link="{path:'/news'}">新闻</a>
      </li>
    </ul>
    <div>
      <router-view></router-view>
    </div>
  </div>
  <template id="home">
    <h3>我是主页</h3>
    <div>
      <a v-link="{path:'/home/login/zns'}">登录</a>
      <a v-link="{path:'/home/reg/strive'}">注册</a>
    </div>
    <div>
      <router-view></router-view>
    </div>
  </template>
  <template id="news">
    <h3>我是新闻</h3>
    <div>
      <a v-link="{path:'/news/detail/001'}">新闻001</a>
      <a v-link="{path:'/news/detail/002'}">新闻002</a>
    </div>
    <router-view></router-view>
  </template>
  <template id="detail">
    {{$route.params | json}}
    <br>
    {{$route.path}}
    <br>
    {{$route.query | json}}
  </template>
  <script>
    //1. 准备一个根组件
    var App=Vue.extend();
    //2. Home News组件都准备
    var Home=Vue.extend({
      template:'#home'
    });
    var News=Vue.extend({
      template:'#news'
    });
    var Detail=Vue.extend({
      template:'#detail'
    });
    //3. 准备路由
    var router=new VueRouter();
    //4. 关联
    router.map({
      'home':{
        component:Home,
        subRoutes:{
          'login/:name':{
            component:{
              template:'<strong>我是登录信息 {{$route.params | json}}</strong>'
            }
          },
          'reg':{
            component:{
              template:'<strong>我是注册信息</strong>'
            }
          }
        }
      },
      'news':{
        component:News,
        subRoutes:{
          '/detail/:id':{
            component:Detail
          }
        }
      }
    });
    //5. 启动路由
    router.start(App,'#box');
    //6. 跳转
    router.redirect({
      '/':'home'
    });
  </script>
</body>
</html>

效果图:

vue多层嵌套路由实例分析

希望本文所述对大家vue.js程序设计有所帮助。

Javascript 相关文章推荐
this[] 指的是什么内容 讨论
Mar 24 Javascript
js对象关系图 方便dom操作
Mar 18 Javascript
cookie的复制与使用记住用户名实现代码
Nov 04 Javascript
jQuery中extend函数详解
Jul 13 Javascript
谈谈我对JavaScript DOM事件的理解
Dec 18 Javascript
JS中使用FormData上传文件、图片的方法
Aug 07 Javascript
HTML5 js实现拖拉上传文件功能
Nov 20 Javascript
利用JavaScript的%做隔行换色的实例
Nov 25 Javascript
jQuery进阶实践之利用最优雅的方式如何写ajax请求
Dec 20 jQuery
JS面向对象的程序设计相关知识小结
May 26 Javascript
vue实现键盘输入支付密码功能
Aug 18 Javascript
NestJs使用Mongoose对MongoDB操作的方法
Feb 22 Javascript
vue组件数据传递、父子组件数据获取,slot,router路由功能示例
Mar 19 #Javascript
vue项目移动端实现ip输入框问题
Mar 19 #Javascript
详解使用React.memo()来优化函数组件的性能
Mar 19 #Javascript
vue组件定义,全局、局部组件,配合模板及动态组件功能示例
Mar 19 #Javascript
express.js中间件说明详解
Mar 19 #Javascript
js array数组对象操作方法汇总
Mar 18 #Javascript
浅析JavaScript异步代码优化
Mar 18 #Javascript
You might like
缅甸的咖啡简史
2021/03/04 咖啡文化
用Flash图形化数据(一)
2006/10/09 PHP
php下安装配置fckeditor编辑器的方法
2011/03/02 PHP
PHP实现文件上传与下载
2020/08/28 PHP
javascript动态添加表格数据行(ASP后台数据库保存例子)
2010/05/08 Javascript
由Javascript实现的页面日历
2011/11/04 Javascript
js加入收藏以及使用Jquery更改透明度
2014/01/26 Javascript
JS获取随机数函数可自定义最小值最大值
2014/05/08 Javascript
javascript实现表单验证
2016/01/29 Javascript
TypeScript入门-接口
2017/03/30 Javascript
详解使用PM2管理nodejs进程
2017/10/24 NodeJs
webpack4 从零学习常用配置(小结)
2019/05/28 Javascript
VUE实现移动端列表筛选功能
2019/08/23 Javascript
Element Dialog对话框的使用示例
2020/07/26 Javascript
在Python中使用itertools模块中的组合函数的教程
2015/04/13 Python
JSONLINT:python的json数据验证库实例解析
2017/11/28 Python
python+matplotlib绘制饼图散点图实例代码
2018/01/20 Python
python爬虫之自制英汉字典
2019/06/24 Python
如何使用Python实现斐波那契数列
2019/07/02 Python
Python使用Pandas对csv文件进行数据处理的方法
2019/08/01 Python
python协程gevent案例 爬取斗鱼图片过程解析
2019/08/27 Python
Windows10下Tensorflow2.0 安装及环境配置教程(图文)
2019/11/21 Python
JMS中Topic和Queue有什么区别
2013/05/15 面试题
JAVA高级程序员面试题
2013/09/06 面试题
最新奶茶店创业计划书范文
2014/02/08 职场文书
三方股东合作协议书范本
2014/09/28 职场文书
公证书格式
2015/01/23 职场文书
教师岗位职责范本
2015/04/02 职场文书
倡议书的格式写法
2015/04/28 职场文书
2015年社区重阳节活动总结
2015/07/30 职场文书
退休欢送会致辞
2015/07/31 职场文书
幼儿园托班教育随笔
2015/08/14 职场文书
react合成事件与原生事件的相关理解
2021/05/13 Javascript
Matplotlib绘制混淆矩阵的实现
2021/05/27 Python
mysql获取指定时间段中所有日期或月份的语句(不设存储过程,不加表)
2021/06/18 MySQL
Python探索生命起源 matplotlib细胞自动机动画演示
2022/04/21 Python