之前在做網站時頁面與頁面之間的轉換都是使用a鏈接跳頁面的方式進行跳轉的,這樣就會帶來一個問題,那就是響應時間會變慢並且會時常出現卡頓的現象,這就讓人很不舒服了。因此我開始在關注上Vue全家桶之一的vue-router。走路由的好處在於:**通過路由來加載頁面,不會讓你重新刷新這個頁面,而是可以做到局部頁面組件的替換(隱藏或者顯示),一開始加載的一些CSS,JavaScript文件都不用再次重新加載了,網頁上的響應速度當然是會變快了。**在這裏不得不稱讚一下Vue的強大,給尤大大點個贊!
首先我們按照國際慣例,先來Vue官方指南上瞅瞅Router實例
官網已經將router解釋的很明白了,首先,他傳遞給人了一種組件化的思想。所謂組件化,就是將大大小小dom進行拆分,將一個網站拆分成很多很多的小零件,然後再將這些小零件映射到路由上,接着我們需要做的就是告訴vue-router我的這些小零件該渲染到什麼位置,也可以說vue-router就是一種工具。接下來我們來看一下官方所給出的栗子:
<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 class="view"></router-view>
</div>
這個router-link我們可以將其理解爲導航,這有點類似於HTML中的a鏈接而router-view呢相當於是一個 iframe ,但是頁面是不需要跳轉的。router-link 還有一個非常重要的屬性 to, 它定義點擊之後,要到哪個路徑下,比如<router-link to="/foo">Go to Foo</router-link>
就是指向/foo下對應的那個名爲Foo的組件,而Foo則對應着一個<div class="tt">foo</div>
的組件。
<script>
// 0. 如果使用模塊化機制編程,導入Vue和VueRouter,要調用 Vue.use(VueRouter)
// 1. 定義(路由)組件。
// 可以從其他文件 import 進來
const Foo = { template: '<div class="tt">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')
// 現在,應用已經啓動了!
</script>
在這裏我要說一下什麼是path。path就是路徑,路由就是什麼樣的路徑訪問什麼樣的頁面,就像道路上的路牌一樣。path 這裏表示這個站點什麼樣的路徑到什麼樣的頁面組件。template中可以定義一些組件,也可以通過import將文件引進來。$mount()這個哥們和el:的效果是一樣一樣的。