第三步:使用路由: + to | 标签 + 代码跳转
1. 最终会渲染为标签,通过to 属性,用于指定跳转的路径,找到对应的组件,把对应的组件渲染到对应的位置
<router-link to="映射关系中的path">首页</router-link>
<router-link to="/about">关于</router-link>
2.默认路径:redirect 重定向
{
path: '/',
// component: Home 不使用这个方法,使用重定向
redirect: '/home' // redirect 重定向
}
3.修改模式 :HTML5的history
export default new Router({
routes,
mode: 'history'
4.通过跳转,的属性
<router-link> 最终会渲染为<a>标签,通过to 属性,用于指定跳转的路径,找到对应的组件,把对应的组件渲染到对应的位置(router-view)
其他属性:
tag : 可以指定<router-link>之后渲染成什么组件(button li等)
replace:默认返回按钮是能够点击的 增加这个属性返回按钮就没有效果了点击也不能返回到上一个页面中
active-class:当<router-link>对应的路由匹配成功时,会自动给当前元素设置一个router-link-active的class
使用场景:进行高亮显示的导航菜单或底部tabbar时,会使用到该类。
-->
5.通过代码跳转路由:this.
r
o
u
t
e
r
.
p
u
s
h
∣
r
e
p
l
a
c
e
(
′
p
a
t
h
′
)
(
router.push|replace('path')(
router.push∣replace(′path′)(router是new 出来的router 对象)
<button @click = "btnClick">首页</button>
methods:{
btnClick(){
this.$router.push('/home')|//点击发生跳转 而不是通过<router-link>的to属性进行跳转
this.$router.replace('/about')
}
}
6.动态路由的使用(场景)this.
r
o
u
t
e
.
p
a
r
a
m
s
.
i
d
(
route.params.id (
route.params.id(route拿到当前出于活跃状态的路由)
//1.在index.js配置路由映射关系
{
// 配置动态路由
path:'/user/:userid',
meta: {
title: '用户'
},
component: User
}
//2.APP.vue
<!-- 动态路由 通过v-bind 绑定 路由跳转传递消息 -->
//vue模板
<router-link :to="'/user/'+ userId">用户</router-link>
//vue实例
data(){
return{
userId: 'lisi'
}
}
//3.想将App.vue里面定义的id获取到
//模板
<h2>{{$route.params.userId}}</h2>//计算属性
//实例
computed: {
userId(){
return this.$route.params.userid//出于活跃的动态路由的userid(path)
}
}
6.
r
o
u
t
e
r
和
router 和
router和route区别:
?
r
o
u
t
e
r
:
为
R
o
u
t
e
r
实
例
,
想
要
导
航
到
不
同
的
U
R
L
,
则
使
用
router:为Router实例,想要导航到不同的URL,则使用
router:为Router实例,想要导航到不同的URL,则使用router.push方法
? $route: 为当前route跳转对象里面可以获取name,path,query,params等