Vue.js路由允許我們通過不同的URL訪問不同的內容。
通過Vue.js可以實現多視圖的單頁Web應用(single page web application,SPA)。
Vue.js路由需要載入vue-router 庫
但是使用路由時,url也是隨著改變的,用戶瀏覽到壹個網頁時可以直接復制或收藏當前頁的url給別人,這種方式對於搜索引擎和用戶來說都是友好的。
簡單實例
Vue.js + vue-router 可以很簡單的實現單頁應用。
<router-link> 是壹個組件,該組件用於設置壹個導航鏈接,切換不同 HTML 內容。 to 屬性為目標地址, 即要顯示的內容。
以下實例中我們將 vue-router 加進來,然後配置組件和路由映射,再告訴 vue-router 在哪裏渲染它們。代碼如下所示:
HTML代碼
<script src="/vue/dist/vue.js"></script><script src="/vue-router/dist/vue-router.js"></script>
<div id="app">
<h1>Hello App!</h1>
<p>
<!-- 使用 router-link 組件來導航. -->
<!-- 通過傳入 `to` 屬性指定鏈接. -->
<!-- <router-link> 默認會被渲染成壹個 `<a>` 標簽 -->
<router-link to="/foo">Go to Foo</router-link>
<router-link to="/bar">Go to Bar</router-link>
</p>
<!-- 路由出口 -->
<!-- 路由匹配到的組件將渲染在這裏 -->
<router-view></router-view></div>JavaScript代碼
// 0. 如果使用模塊化機制編程,導入 Vue 和 VueRouter,要調用 Vue.use(VueRouter)
// 1. 定義(路由)組件。
// 可以從其他文件 import 進來
const Foo = { template: '<div>foo</div>' }
const Bar = { template: '<div>bar</div>' }
// 2. 定義路由
// 每個路由應該映射壹個組件。 其中"component" 可以是
// 通過 Vue.extend() 創建的組件構造器,
// 或者,只是壹個組件配置對象。
// 我們晚點再討論嵌套路由。
const routes = [
{ path: '/foo', component: Foo },
{ path: '/bar', component: Bar }
]
// 3. 創建 router 實例,然後傳 `routes` 配置
// 妳還可以傳別的配置參數, 不過先這麽簡單著吧。
const router = new VueRouter({
routes // (縮寫)相當於 routes: routes
})
// 4. 創建和掛載根實例。
// 記得要通過 router 配置參數註入路由,
// 從而讓整個應用都有路由功能
const app = new Vue({
router
}).$mount('#app')
// 現在,應用已經啟動了!點擊過的導航鏈接都會加上樣式 class ="router-link-exact-active router-link-active"。