vue-router 快速入門
配置路由
$ npm install vue-router --save
routes.js
import Home from './pages/Home.vue'import Gifs from './pages/Gifs.vue'import User from './pages/User.vue'export const routes = [ { path: '', component: Home }, { path: '/gifs', component: Gifs }, { path: '/user/:id', component: User } //指定路由和對應要渲染的組件 //404的path應該是'*',要放在最末尾,當前面的都匹配不到時才匹配到404頁面 //this.$route.params.id 可以從路由中拿到id數據]
main.js
import VueRouter from 'vue-router'import { routes } from './routes'Vue.use(VueRouter)//路由初始化const router = new VueRouter({ routes})//將路由注入根組件new Vue({ el: '#app', ... router, render: h => h(App)})
App.vue
<template> <div class="app"> <router-view></router-view> </div></template>
在模板中標注出組件渲染的位置
#號的含義
#號前表示的是發送給服務端的請求,要求返回html文件,而#號后表示的是發送給本地js的請求以尋求解決
路由參數動態綁定
使用watch
watch: { '$route'(to,from) { //to當前路由,from上一個路由 this.id = to.params.id }}
路由的數據傳遞
傳query參數可以達到地址欄出現/?locale=en&list=2
通過 $route.query.鍵名 來訪問
命名視圖
router-view 可以通過配置名字 name 來指定組件渲染的位置,增加了組件的復用性,比如分成 header main hero footer 來分別在一個視圖中的不同位置上加載不同的組件
組件懶加載
我們只需要加載我們需要的組件呈現給用戶,而其他不需要第一時間加載的組件,可以使用 webpack 實現異步加載,只在需要的時候才會發出請求,請求加載另一個組件
routes.js
const User = resolve => { require.ensure(['./components/user/User.vue'], () => { resolve(require('./components/user/User.vue')) }, 'GroupName')}//webpack 異步加載,通過組名,將要同時一起加載的組件打包加載
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。
新聞熱點
疑難解答