vue-11-路由嵌套-参数传递-路由高亮
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-路由嵌套-参数传递-路由高亮的更多相关文章
- angular2系列教程(十一)路由嵌套、路由生命周期、matrix URL notation
今天我们要讲的是ng2的路由的第二部分,包括路由嵌套.路由生命周期等知识点. 例子 例子仍然是上节课的例子:
- 六、Vue-Router:基础路由处理、路由提取成单独文件、路由嵌套、路由传参数、路由高亮、html5的history使用
一.vue-router的安装 官网文档 [官网]:https://cn.vuejs.org/v2/guide/routing.html [router文档]:https://router.vuejs ...
- vue教程3-06 vue路由嵌套(多层路由),路由其他信息
多层嵌套: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...
- vue之路由嵌套,子路由
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- vue 路由嵌套高亮问题
正常路由嵌套是没有问题的,但是如果你已经在当前主路由页面了,然后再次点击主路由就会出现页面数据空白的情况 看代码: //主路由通过v-for循环出来 <div class="list- ...
- vue学习路由嵌套
1. 路由嵌套和参数传递 传参的两种形式: a.查询字符串:login?name=tom&pwd=123 {{$route.query}} ------ <li><route ...
- Vue学习手记03-路由跳转与路由嵌套
1.路由跳转 添加一个LearnVue.vue文件, 在router->index.js中 引入import Learn from '@/components/LearnVue' 在touter ...
- Vue总结第五天:vue-router (使用模块化(创建Vue组件)机制编程)、router-link 标签的属性、路由代码跳转、懒加载、路由嵌套(子路由)、路由传递数据、导航守卫)
Vue总结第五天:vue-router ✿ 路由(器)目录: □ vue中路由作用 □ vue-router基本使用 □ vue-router嵌套路由 □ vue-router参数传递 □ ...
- 060——VUE中vue-router之路由嵌套在文章系统中的使用方法:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
随机推荐
- MySQL数据库学习书单/书籍
MySQL数据库学习书单 1.MySQL必知必会(MySQL Crash Course) 豆瓣详情 主要适合前期掌握MySQL,豆瓣评分8.4. 2.高性能MySQL 豆瓣详情 主要适合进阶阅读使 ...
- 区域检测算法-MSERs
区域检测算法-MSERs:最大稳定极值区域 参考书籍——<图像局部不变性特征与描述>王永明.王贵锦著 MSER最大极值稳定区域的提取步骤:1.像素点排序 2.极值区域生成 3.稳定 ...
- Python_day9
多继承: python支持,但不建议使用 dir(): 获取类或者对象的方法和属性 __mro__:获取类的继承顺序 class A(object): def run(self): print('ru ...
- lwip协议栈学习---udp
书籍:<嵌入式网络那些事-lwip协议> udp协议的优点: 1)基于IP协议,无连接的用户数据报协议,适用于传送大批量数据, 2)实时性比较高,适用于嵌入式网络 发送函数:udp_sen ...
- elasticsearch中 refresh 和flush区别(转)
elasticsearch中有两个比较重要的操作:refresh 和 flush refresh操作 当我们向ES发送请求的时候,我们发现es貌似可以在我们发请求的同时进行搜索.而这个实时建索引并可以 ...
- 防范 SQL 注入攻击
防范 SQL 注入攻击 我们执行的 SQL语句中包含变量,执行的时候会直接把变量内容替换进去.而如果攻击者在输入框中输入一些危险的字符(通常包含 SQL 注释符 --,以及其他预先精心设置的内容), ...
- How to enable C development in a Windows 10 development environment VM
To enable C development in a Windows 10 development environment VM, follow these steps: Start VS in ...
- U-Boot bootargs简析
Linux内核启动时需要一些配置信息,如根文件系统的类型.flash分区情况.串口终端的编号.内存的使用情况等等,而由于U-Boot和Linux Kernel的镜像是独立的两个文件,所以只能两者约定好 ...
- docker install
1.安装必要工具集 sudo yum install -y yum-utils 2.安装Docker官方源 sudo yum-config-manager \ --add-repo \ https:/ ...
- ubuntu自带截图工具--方便好用(转)
一般用到的截图类型有三种:全屏.当前活动窗口.自定义区域,其中自定义区域截图是最灵活也是我们用的最多的方式.在ubuntu下可以通过其自带的截图工具轻松实现这三种功能. ubuntu自带的截图工具为s ...