爲了給讀者更好的體驗,去理解vue-router和下一篇介紹vuex,決定仍是來一個實戰教程來帶你們更加的去深刻理解vue-router,在這以前,讀者先自行了解和去官網下載npm和node,附:npm官網html
這裏我採用vue-cli+webpack構建初始項目,在vue官網裏面也有相關介紹,在這裏我就手把手教你們一下吧,先經過控制檯進入相關的文件目錄下,而後輸入前端
# 後面是註釋 # $表示當前文件目錄 # 全局安裝 vue-cli $ npm install --global vue-cli # 建立一個基於 webpack 模板的新項目 $ vue init webpack my-project # 安裝依賴,走你 $ cd my-project $ npm install # 運行項目my-preoject $ npm run dev
通過上面簡單的構建以後,一個項目的初始化就完成了,這裏vue-cli和webpack已經幫咱們弄好了文件目錄結構和基本目錄vue
在進行使用vue-router以前,我不得不也先介紹一下vue-router是什麼?node
它是一個vue.js下的路由組件,那什麼是路由呢?網上有一大堆官方的介紹,相信對於小白是難以理解的,這裏我就簡單的說明一下吧。webpack
其實路由也就是url,url是什麼呢?url就是惟一資源定位符,簡單的說,也就是標記頁面的惟一存在的一個標籤,就像https://www.baidu.com,這裏的www.baidu.com就是惟一資源定位符,https就只是一種協議,規範計算機網絡的通訊協議。web
介紹完這些,那麼對於咱們究竟該怎麼用呢?
其實很簡單,在平時當中,咱們就常常碰到在一個網站裏面點擊連接會彈到另一個頁面,而後就能夠發現他們的url改變了,而vue-router就是這樣,在同個域名下(這裏的域名是http://localhost:8080),改變域名後面的字符參數,好比http://localhost:8080/me和http://localhost:8080/you是兩個不一樣的頁面就是靠vue-router進行實現的。ajax
若是你在以前沒有安裝vue-router的話,建議能夠先去官網,看着文檔使用npm安裝一下,這裏就很少作介紹了。vue-router
首先我先在項目my-project/src/components(存放組件的目錄)裏面添加兩個文件me.vue和you.vuevuex
// me.vue <template> <div> 我是me </div> </template> <script type="text/ecmascript-6"> export default {} </script> <style scoped> </style> // you.vue <template> <div> 我是you </div> </template> <script type="text/ecmascript-6"> export default {} </script> <style scoped> </style>
而後修改my-project/src/router(存放路由相關信息的目錄)下面修改index.js成vue-cli
import Vue from 'vue' import Router from 'vue-router' import HelloWorld from '@/components/HelloWorld' // 導入組件 import me from '../components/me' import you from '../components/you' Vue.use(Router) export default new Router({ routes: [ { path: '/', name: 'HelloWorld', component: HelloWorld }, // 將組件命名到路由上,輸入http://localhost:8080/#/me // 便可進入不一樣的頁面 { path: '/me', component: me }, // 將組件命名到路由上,輸入http://localhost:8080/#/you // 便可進入不一樣的頁面 { path: '/you', component: you } ] })
這樣只會輸入http://localhost:8080/#/me就會進到其餘頁面,是否是很簡單,
那麼咱們怎麼在頁面裏面進行跳轉呢?
這就運用到了更有趣的知識了就是router-link你只要在你的組件的代碼下輸入
<router-link :to="/me">這裏是跳轉連接</router-link>
網頁就自動跳轉到http://localhost:8080/#/me頁面了,可是這樣老是很差的,由於,若是因爲一些緣由,咱們想修改路由的名字(好比me改爲him)就得改兩個文件的信息,所以,vue團隊也早就想好了,就是name屬性,將my-project/src/router(存放路由相關信息的目錄)下面修改index.js成
// ... { path: '/me', name: 'me', component: me }, // ...
而後跳轉就改爲
<router-link :to="{ name: 'me'}">這裏是跳轉連接</router-link>
就能夠進行跳轉了
vue.$router.push('/me')
// ... { path: '/me', name: 'me', component: me, children: [ { path: 'him' // ... }, { path: 'she' // ... } ] }, // ...
其實還有不少高級應用場景,我就不一一列舉出來了,由於這些其實最好仍是上官方文檔進行說明,我這裏只是解釋一下簡單的用法,以及初學者可能對官方文檔會有誤解來進行說明一下,但願你們仍是學會看API,附官網地址