會按照後面的 "/" "/home" "/me"進行解析,從而從打包好的js中獲取須要的js/css等資源css
1 http://10.0.0.1/ 2 http://10.0.0.1/#/about 3 http://10.0.0.1/#/concat
1 http://10.0.0.1/ 2 http://10.0.0.1/about 3 http://10.0.0.1/concat
1 npm install vue-router
1 import Vue from 'vue' 2 import VueRouter from 'vue-router' 3 4 Vue.use(VueRouter)
1 //路由懶加載 2 const Home = () => import('../views/home/Home.vue') 3 const Category = () => import('../views/category/Category.vue') 4 const Me = () => import('../views/me/Me.vue') 5 6 7 //2.建立路由對象 8 const routes = [ 9 { 10 path:'', 11 redirect:'/home' 12 }, 13 { 14 path:'/home', 15 component:Home 16 }, 17 { 18 path:'/me', 19 component:Me 20 }, 21 { 22 path:'/category', 23 component:Category 24 } 25 26 ] 27 const router = new VueRouter({ 28 routes : routes, 29 mode : 'history' 30 })
1 //導出路由 2 export default router
1 <template> 2 <div id="app"> 3 <router-view></router-view> 4 <maintabbar></maintabbar> 5 </div> 6 </template> 7 8 <script> 9 10 import maintabbar from './components/tabbar/maintabbar.vue' 11 export default { 12 name: 'App', 13 components: { 14 maintabbar: maintabbar 15 } 16 } 17 </script> 18 <style> 19 @import url("assets/css/base.css"); 20 </style>
1 //修改路由配置 2 { 3 path: '/describe/:id', 4 name: 'Describe', 5 component: Describe 6 }
在目標路徑下接收參數html
this.$route.params.id
在目標路徑下接受多個對象前端
1 this.$route.query
const router = new VueRouter({ routes: [ { path: '/user/:id', component: User, children: [ { // 當 /user/:id/profile 匹配成功, // UserProfile 會被渲染在 User 的 <router-view> 中 path: 'profile', component: UserProfile }, { // 當 /user/:id/posts 匹配成功 // UserPosts 會被渲染在 User 的 <router-view> 中 path: 'posts', component: UserPosts } ] } ] })
1 const router = new VueRouter({ ... }) 2 3 router.beforeEach((to, from, next) => { 4 //。。 5 next() 6 })
1 router.afterEach((to, from) => { 2 // ... 3 })
to: Route
: 即將要進入的目標 路由對象vue
from: Route
: 當前導航正要離開的路由java
next: Function
: 必定要調用該方法來 resolve 這個鉤子。執行效果依賴 next
方法的調用參數。node
***確保要調用 next
方法,不然鉤子就不會被 resolvedvue-router
1 const router = new VueRouter({ 2 routes: [ 3 { 4 path: '/foo', 5 component: Foo, 6 beforeEnter: (to, from, next) => { 7 // ... 8 } 9 } 10 ] 11 })
1 const Foo = { 2 template: `...`, 3 beforeRouteEnter (to, from, next) { 4 // 在渲染該組件的對應路由被 confirm 前調用 5 // 不!能!獲取組件實例 `this` 6 // 由於當守衛執行前,組件實例還沒被建立 7 }, 8 beforeRouteUpdate (to, from, next) { 9 // 在當前路由改變,可是該組件被複用時調用 10 // 舉例來講,對於一個帶有動態參數的路徑 /foo/:id,在 /foo/1 和 /foo/2 之間跳轉的時候, 11 // 因爲會渲染一樣的 Foo 組件,所以組件實例會被複用。而這個鉤子就會在這個狀況下被調用。 12 // 能夠訪問組件實例 `this` 13 }, 14 beforeRouteLeave (to, from, next) { 15 // 導航離開該組件的對應路由時調用 16 // 能夠訪問組件實例 `this` 17 } 18 }