安装vue-router
安装依赖
1
npm install vue-router@3.5.2 --save
在main.js中引入
1
import router from '@/router';
新建一个router文件夹,新建index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16import Vue from 'vue';
import VueRouter from 'vue-router';
Vue.use(VueRouter);
export default new VueRouter ({
//配置路由
routes:[
{
path: 路径名
component: 组件名
},
]
})
隐藏路由组件
在某些页面中如果想要隐藏Header组件或Footer组件,可以设置meta
router.js
1 | export default new VueRouter ({ |
1 | <Footer v-show="$route.meta.show"></Footer> |
路由跳转
声明式导航router-link
1
<router-link to="/login">登录</router-link>
编程式导航push | replace
1
<button @click="goSearch">搜索</button>
1
2
3
4
5methods: {
goSearch() {
this.$router.push('/search');
}
}
路由传参
在编程式导航中可以进行路由传参
字符串形式
1
2
3
4
5{// 修改路由信息
path: "/search/:keywords",
component: Search,
meta: {show:true}
},1
2//编程式导航
this.$router.push('/search/'+this.keywords+"?k="+this.keywords.toUpperCase());url地址:http://localhost:8081/#/search/1a2q?k=1A2Q
其中params参数为1a2q,query参数为1A2Q
可以通过$route.params.keywords 和 $route.query.k获取
模板字符串
1
this.$router.push(`/search/${this.keywords}?k=${this.keywords.toUpperCase()}`);
对象
1
2
3
4
5this.$router.push({
name:"search",
params: {keywords:this.keywords},
query:{k:this.keywords.toUpperCase()}
})