[toc]
`routes`是new Router时必传的参数,它是一个数组,里面存储着本App每一条路由的相关配置,比如,什么路径渲染什么组件
## redirect
```
redrirect:'/home'
```
```
redirect:{path:'/home'}
redirect:{name:'home'}
```
## path
`*`代表匹配任何路由
### 动态路由
在路由组件上可以通过`this.$route.params`那么动态路由对象
```
this.$route.params.id
```
其中的动态路由对象的属性是在你定义路由时指定的
```
,{
path: '/detail/:id'
, name: 'Detail'
, component: Detail
}
```
## props:将动态路由参数作为属性传入组件
```
,{
path:'/app/:id'
//:id会作为属性传入到Todo组件
,props:true
```
也可以手动传入一些数据
```
,props:{
id:456
```
或则根据query来计算出一个值传过去
```
props根据x来传递
route同组件内部的this.$route
,props:(route)=>({id:route.query.b})
```
## component
一个路由对应一个路由组件
注意和components区分,有它无我
## components:命名视图
三栏布局时(上,侧,内容)
如果点击顶部导航,侧栏要变,就可以用这个
```
//支持命名视图
,components:{
//没有名字的<router-view>会显示这个
default:Todo
//名字为a的<router-view>会显示这个
,a:Login
}
```
## name
每个路由都可以有个名字,可用于router-link跳转
## alias
```
{
path:'/home'
,alias:'/index'
}
```
访问`/index`等同于`/home`
## 子路由
注意子路由不带有`/`作为前缀,它的路径是顺着父路由路径往下延伸的,
如果带有`/`,则表示是从根路径开始了
```
,{
path:'/app/:id'
,component:Todo
//随便取
,name:'app'
,meta:{
//可以通过路由信息对象拿到这里定义的数据
title:'this is app'
,description:'asdasd'
}
//子路由
// 需在app下设置children路由的router-view
,children:[
{
path:'test'
,component:Login
}
]
}
```
## exact
默认只有路径是以指定to开头,那么那个link的样式就会被激活
![](https://box.kancloud.cn/113f2aba608264690f820bb35ea78166_468x273.png)
如果不想这样,需将exact设置为true
![](https://box.kancloud.cn/f0c6dcbfa8322abb6bcf2e0e6dd38607_483x278.png)
原理是设置为true后,只有完全匹配路径的link才有`.router-link-active`这个样式
---
除了上面添加exact的方式,其实我们还可以通过给`.router-exact-link-active`添加样式而不是给 .router-link-active 添加样式来实现样式的精确匹配
## meta
meta是我们用来存储任何想要在下一个路由得到的数据
- 空白目录
- vue-cli
- runtime-only
- Vue对比React
- 组件与实例
- data-binding
- computed的set和get
- scoped
- 事件
- 自定义指令
- 插件
- keep-alive
- $nextTick与生命周期
- 路由
- Vue.use(Router)
- this.$router编程式导航
- this.$route
- new Router
- routes
- mode
- linkClass
- scrollBehavior
- query
- fallback
- base
- router-view
- router-link
- 路由守卫
- 左右切换
- 滚动
- FAQ
- vuex
- 适用
- new Vuex.Store
- state
- mutations
- getters
- actions
- strict
- plugins
- modules
- namespace
- this.$store
- commit
- dispatch
- mapXX
- eventBus
- Vue工程相关
- 引用路径的简化
- css-module
- vue-loader
- 异步加载
- 支持jsx
- 让webpack支持对vuex的热替换
- .eslintrc