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. sjms-3 结构型模式

    结构型模式 适配器模式 内容:将一个类的接口转换成客户希望的另一个接口.适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作.两种实现方式:类适配器:使用多继承对象适配器:使用组合 角色 ...

  2. mysql利用LAST_INSERT_ID实现id生成器

    首先了解 LAST_INSERT_ID LAST_INSERT_ID 有自己的存储空间,能存一个数字 不带参数时返回最近insert的那行记录的自增字段值.带参数时会将自己存储的数字刷成参数给定的值 ...

  3. android初学

    1布局 LinearLayout 线性布局 FrameLayout 框架布局 AbsoluteLayout 绝对布局 RelativeLayout 相对布局 TableLayout 表格布局 2标记语 ...

  4. 关于http与https的注意点

    背景:在一次项目生产上线中遇到地址在IOS版本的app中打不开或者接口请求不返回的情况,在安卓机和PC上表现正常,经排查,问题出在http请求上,原因详解 在早期PC上和安卓手机上比较不严格,在htt ...

  5. ext__给grid Panel设置绑定事件

    使用面板来展示详情信息 1.创建一个面板 (双击添加) 2.给该面板设置itemid的值为:detailPanel 3.给面板设置模板 4.添加下面的内容 id:{id}</br> nam ...

  6. php中测试运行的时间,从而选择得出优化程序

    对于新手来说,优化代码的习惯十分重要, 测试运行的时间,从而得出最好的一个 <?php $t1=microtime(true);   //获取程序1,开始的时间 程序1(代码...) $t2=m ...

  7. latex 常用自定义_随时更新

    1.向量定义 代码: \newcommand{\vector}[1]{${#1}_1,{#1}_2,\cdots,{#1}_n$} 效果: a1,a2,...,an

  8. IDEA打开maven项目dependencies红线

    第一步:install报红的项目,从maven库下载需要的包,看看日志还缺哪些本地包,少了就去下,丢到库里.不缺包后,reimport一下一般就OK了,如果还是红的,重启一下就好了. 如果第一步还没好 ...

  9. Java中的==与equals

    当使用==操作符判断类时,实际上判断的是二者是否指向同一个对象 若要判断两个对象是否含有相同的数据,需使用Object类中的equals方法 java中所有类都是从Object类中派生出来的

  10. 简单css实现input提示交互动画效果

    通过基础CSS实现输入提示交互动画效果,并兼容各浏览器! 1.效果展示 2.css代码 h4 { margin: 30px 0; } input { margin:; font-size: 16px; ...