1, 新建vue-router 项目

vue init webpack vue-router-test

是否创建路由: 是

2, 添加路由列表页

在 component下创建 NavList 页面

<template>
<div>
<div class="navlist">
<ul>
<li><router-link :to="index">首页</router-link></li>
<li><router-link :to="course">课程</router-link></li>
<li><router-link :to="master">专家</router-link></li>
</ul>
</div> </div>
</template> <script>
export default {
name: "NavList",
data() {
return {
index: "/",
course: "/course",
master: "/master",
}
}
}
</script> <style scoped>
.navlist {
width: %;
height: 50px;
background: #f1f1f1;
}
ul {
list-style: none;
}
li {
float: left;
margin: 20px;
}
</style>

3, 添加子页面

index.vue, master.vue, course.vue等, 仅展示 index.vue

<template>
<div>
<NavList/>
首页
</div>
</template> <script>
import NavList from "./NavList";
export default {
name: "index",
components: {NavList},
data() {
return { }
}
}
</script> <style scoped> </style>

4, 在index.js 中导入子页面, 配置路径和页面关系

import Vue from 'vue'
import Router from 'vue-router'
import index from '@/components/index'
import Course from '@/components/course'
import Master from '@/components/master'
import Java from '@/components/course/java'
import Python from '@/components/course/python' Vue.use(Router) export default new Router({
routes: [
{
path: '/',
name: 'index',
component: index
},
{
path: '/course',
name: 'Course',
component: Course,
},
{
path: '/master',
name: "Master",
component: Master
}
]
})

5, 在app vue 中, 添加路由显示位置

router-view

<template>
<div id="app">
<!--<img src="./assets/logo.png">-->
<!--<NavList/>-->
<router-view/> </div>
</template>

6, 使用 npm run dev 运行, 即可看到初始效果

7, 路由嵌套

有时候, 在二级页面下还需要新的子页面, 就需要使用路由嵌套功能

7.1) 在 component中添加 java.vue, python.vue 等子页面

<template>
<div>
java
</div>
</template> <script>
export default {
name: "java"
}
</script> <style scoped> </style>

7.2), 在course 中 引入路由嵌套

使用 router-link 进行页面跳转

添加 router-view 指定显示区域

路径导航使用全路径

<template>
<div>
<NavList/> <div class="left">
<ul>
<li><router-link :to="java">java</router-link></li>
<li><router-link :to="python">python</router-link></li>
<li>bigdata</li>
</ul>
</div> <div class="right">
视图区域
<router-view/>
</div> </div>
</template> <script>
import NavList from "./NavList";
export default {
name: "course",
components: {NavList},
data() {
return {
java: "/course/java",
python: "/course/python",
}
}
}
</script> <style scoped>
.left, .right {
float: left;
}
.left {
margin-left: ;
}
.right {
margin-left: 50px;
}
</style>

7.3) 在index.js 中指定 子嵌套关系

使用 redirect 指定一开始进入的默认页面

{
path: '/course',
name: 'Course',
component: Course,
// 默认进入重定向
redirect: "/course/java",
// 子嵌套
children: [
{
path: "java",
name: "Java",
component: Java
},
{
path: "python",
name: "Python",
component: Python
}
]
},

8, 参数传递

在vue中, 可以通过参数传递, 将值或者对象传递给路由子页面

8.1) 定义要传递的对象

data() {
return {
index: "/",
course: "/course",
master: "/master",
obj: {
name: "wenbronk",
age:
}
}
}

8.2), 在 router-link 中, 使用 :to={} 的形式进行传递参数

<li><router-link :to="{ name: 'Master', params:{count: 100, type: obj}}">专家</router-link></li>

8.3) 在 master 页面, 接受参数

<template>
<div>
专家: {{ $route.params.count }} - {{ $route.params.type.name }}
</div>
</template> <script>
export default {
name: "master"
}
</script> <style scoped> </style>

9, 路由高亮, 实现点击的呈现高亮效果

9.1), 在index.js 中, 添加 路由选中class名

默认是 router-link-active, 更改

  mode: "history",
linkActiveClass: "active",

9.2), 在全局中配置, css 样式

  .active {
color: red
}

9.3), 对于匹配 / 的, 会始终显示高亮, 需要添加 exact 属性;

 <li><router-link :to="index" exact>首页</router-link></li>

vue-11-路由嵌套-参数传递-路由高亮的更多相关文章

  1. angular2系列教程(十一)路由嵌套、路由生命周期、matrix URL notation

    今天我们要讲的是ng2的路由的第二部分,包括路由嵌套.路由生命周期等知识点. 例子 例子仍然是上节课的例子:

  2. 六、Vue-Router:基础路由处理、路由提取成单独文件、路由嵌套、路由传参数、路由高亮、html5的history使用

    一.vue-router的安装 官网文档 [官网]:https://cn.vuejs.org/v2/guide/routing.html [router文档]:https://router.vuejs ...

  3. vue教程3-06 vue路由嵌套(多层路由),路由其他信息

    多层嵌套: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...

  4. vue之路由嵌套,子路由

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. vue 路由嵌套高亮问题

    正常路由嵌套是没有问题的,但是如果你已经在当前主路由页面了,然后再次点击主路由就会出现页面数据空白的情况 看代码: //主路由通过v-for循环出来 <div class="list- ...

  6. vue学习路由嵌套

    1. 路由嵌套和参数传递 传参的两种形式: a.查询字符串:login?name=tom&pwd=123 {{$route.query}} ------ <li><route ...

  7. Vue学习手记03-路由跳转与路由嵌套

    1.路由跳转 添加一个LearnVue.vue文件, 在router->index.js中 引入import Learn from '@/components/LearnVue' 在touter ...

  8. Vue总结第五天:vue-router (使用模块化(创建Vue组件)机制编程)、router-link 标签的属性、路由代码跳转、懒加载、路由嵌套(子路由)、路由传递数据、导航守卫)

    Vue总结第五天:vue-router ✿ 路由(器)目录: □  vue中路由作用 □  vue-router基本使用 □  vue-router嵌套路由 □  vue-router参数传递 □  ...

  9. 060——VUE中vue-router之路由嵌套在文章系统中的使用方法:

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

随机推荐

  1. MySQL zip版本安装

    一直以来都习惯了使用MySQL安装文件(.exe),今天下载了一个.zip版本的MySQL,安装过程中遇到了一些问题,如下: 1.在MySQL官网上(http://dev.mysql.com/down ...

  2. Python类——面向对象

    一.有关面向对象的一些知识 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发“更快更好更强...” ...

  3. bond绑定两张物理网卡为一张逻辑网卡

    问题:cnetos7同时接入两个独立网络,但两个网络的IP网段相同时只能路由到一个网络 解决方法:使用bond绑定两张物理网卡为一张逻辑网卡 1.新建文件bond.conf,内容如下 alias bo ...

  4. c++变量的存储方式

    1.名字的作用域 作用域是从空间的角度来分析的,c++的作用域以花括号分隔,定于于所有{ }以外的名字具有全局作用域,定义于{ }以内的名字具有块作用域 2.变量的生命周期 生命周期是从变量存在的时间 ...

  5. opencv2.4.13+python2.7学习笔记--OpenCV中的图像处理--图像轮廓

    阅读对象:无要求. 1.代码 ''' OpenCV中的轮廓 轮廓可以简单认为成将连续的点(连着边界)连在一起的曲线,具有相同的颜色或者灰度.为了更加准确,要使用二值化图像.在寻找轮廓之前,要进行阈值化 ...

  6. Kalman Filters

    |—定位—|—蒙特卡洛方法(定位自身) |              |—卡尔曼滤波器(定位其他车辆) |—高斯函数 |—循环两个过程—|—测量(测量更新) |                     ...

  7. js打断点

    F12打开调试器         资源sources     找到就是文件    选中需要打断点的行 获得段短点的值:将断点向后执行一步(页面提示的桥状小图标),然后选中上一步需要打断点的值,悬浮在上 ...

  8. android项目生成aar和引用aar解决方案

    引用依赖在项目中很常见,java开发一般是引用jar,所以android大家一般也是引用jar,但是android引用jar有时候会出现各种包冲突,很头痛!, 其实android有自己独特的引用aar ...

  9. 从零起步做到Linux运维经理, 你必须管好的23个细节

    “不想成为将军的士兵,不是好士兵”-拿破仑 如何成为运维经理? 一般来说,运维经理大概有两种出身:一种是从底层最基础的维护做起,通过出色的维护工作,让公司领导对这个人非常认可,同时对Linux运维工作 ...

  10. SVN设置全局忽略提交文件或者目录

    在目录中右击选择TortoiseSVN -> 设置 -> 常规设置 -> 全局忽略样式 修改全局忽略样式(可以设置忽略的文件或者目录,以空格隔开):*.o *.lo *.la *.a ...