Vue Router 是一個官方的 Vue.js 路由管理器。它與 Vue.js 的核心深度集成,使得構建單頁面應用程序非常容易。本文將介紹 Vue Router 的前提示及其用法。
使用 Vue Router 需要先通過 npm 或 yarn 安裝它。
npm install vue-router
或
yarn add vue-router
安裝后,我們需要在 Vue.js 中引入 Vue Router 并使用。
import Vue from 'vue'
import VueRouter from 'vue-router'
Vue.use(VueRouter)
const router = new VueRouter({
routes: [
// routes here...
]
})
new Vue({
router,
render: h =>h(App),
}).$mount('#app')
在上述代碼中,我們通過 Vue.use() 方法來告訴 Vue.js 使用 Vue Router,然后創建了一個新的 VueRouter 實例,并使用它來創建我們的 Vue 實例。
Vue Router 默認使用 hash 模式,這意味著當你訪問路由時,URL 將被格式化為 http://example.com/#/path/to/route。這個模式雖然非常簡單,但它具有一些缺點。首先,它不完美支持通用的 Push State API,其次,它需要在服務器上進行特殊配置,以便在刷新頁面時正確處理路由。
因此,我們可以使用 history 模式來避免這些缺點。只需將其設置為 true 并將配置文件上傳到服務器即可。
const router = new VueRouter({
mode: 'history',
routes: [
// routes here...
]
})
在使用 Vue Router 時也會遇到這樣一個問題:如何在路由之間傳遞數據。我們可以通過$route對象來獲取參數。
// 在路由中設置參數
const router = new VueRouter({
routes: [
{
path: '/user/:id',
name: 'user',
component: User,
props: true
}
]
})
// 在組件中獲取
export default {
props: ['id'],
created () {
console.log(this.$route.params)
console.log(this.id)
}
}
在上面的代碼中,我們使用路由參數來傳遞參數,同時設置 props 選項為 true 以便組件接收這些參數。然后在組件中使用 $route.params 或 this.id 來獲取參數。
Vue Router 還有其他額外的功能,比如:路由守衛、重定向等。我們可以在 Vue.js 的官方文檔中查找更多關于 Vue Router 的信息。