0.
route:单个路由
routes:多个路由的集合,定义上routes是一个数组,这个数组由对象组成
router:路由器,起管理功能,router会去routes中查找route
1.安装vue-router
npm install vue-router
2.路由配置
三个文件:
router.js
//引入vue import Vue from 'vue'; //引入vue-router import VueRouter from 'vue-router'; //第三方库需要use一下才能用 Vue.use(VueRouter) //引用page1页面 import page1 from './page1.vue'; //引用page2页面 import page2 from './page2.vue'; //定义routes路由的集合,数组类型 const routes=[ //单个路由均为对象类型,path代表的是路径,component代表组件 {path:'/page1',component:page1}, {path:"/page2",component:page2} //可以配置重定向 {path:'',redirect:"page1"} //或者重新写个路径为空的路由 {path:"",component:page1} ] //实例化VueRouter并将routes添加进去 const router=new VueRouter({ //ES6简写,等于routes:routes routes }); //抛出这个这个实例对象方便外部读取以及访问 export default router
main.js
import Vue from 'vue' import App from './App' //引用router.js import router from './router.js' Vue.config.productionTip = false /* eslint-disable no-new */ new Vue({ el: '#app', //一定要注入到vue的实例对象上 router, components: { App }, template: '<App/>' })
App.vue
<template> <div id="app"> <img src="./assets/logo.png"> <div> //router-link定义页面中点击触发部分 <router-link to="/page1">Page1</router-link> <router-link to="/page2">Page2</router-link> </div> //router-view定义页面中显示部分 <router-view></router-view> </div> </template> <script> export default { name: 'App' } </script> <style> #app { font-family: 'Avenir', Helvetica, Arial, sans-serif; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-align: center; color: #2c3e50; margin-top: 60px; } </style>
用重定向和单独配置路由的区别:
重定向实际上是当匹配到路径符合条件的时候去执行对应的路由,当然这个时候的url上面的地址显示的是对应的路由,页面也是对应的路由页面;
重新配置路由是当匹配到路径符合条件的时候,router-view页面展示部分负责拿符合条件路由的页面来展示,实际上url是没有发生变化的;
动态路由、嵌套路由
路由导航(标签导航、编程式导航(push))
命名路由