vue-route路由管理的安裝與配置方法
介紹
Vue Router
是 Vue.js
官方的路由管理器。它和 Vue.js
的核心深度集成,讓構(gòu)建單頁面應(yīng)用變得易如反掌。包含的功能有:
- 嵌套的路由/視圖表
- 模塊化的、基于組件的路由配置
- 路由參數(shù)、查詢、通配符
- 基于 Vue.js 過渡系統(tǒng)的視圖過渡效果
- 細(xì)粒度的導(dǎo)航控制
- 帶有自動激活的 CSS class 的鏈接
- HTML5 歷史模式或 hash 模式,在 IE9 中自動降級
- 自定義的滾動條行為
安裝
安裝命令
npm install vue-router --save
如果在一個(gè)模塊化工程中使用它,必須要通過 Vue.use()
明確地安裝路由功能:
import Vue from 'vue' import VueRouter from 'vue-router' Vue.use(VueRouter)
模塊化使用
之前我們使用腳手架vue-cli
創(chuàng)建項(xiàng)目時(shí),實(shí)際已經(jīng)配置好了router
,創(chuàng)建完項(xiàng)目后,在項(xiàng)目根目錄下會有一個(gè)router
文件夾,router
下有一個(gè)index.js
文件,內(nèi)容如下:
import Vue from "vue"; import VueRouter from "vue-router"; import Home from "../views/Home.vue"; // 1. 當(dāng)我們使用其他插件的時(shí)候,就必須使用Vue.use安裝插件 Vue.use(VueRouter); // 2. 定義路由,每個(gè)路由應(yīng)該映射一個(gè)組件 const routes = [ { path: "/", name: "Home", component: Home, }, { path: "/about", name: "About", component: About }, ]; // 3. 創(chuàng)建router實(shí)例 const router = new VueRouter({ // 配置路由和組件之間的應(yīng)用關(guān)系 routes, // (縮寫) 相當(dāng)于 routes: routes }); // 4. 導(dǎo)出router對象,然后在main.js中引用 export default router;
這個(gè)文件是專門配置路由的,最后將router
對象導(dǎo)出后,我們在項(xiàng)目的main.js
中引用即可
import Vue from "vue"; import App from "./App.vue"; import router from "./router"; Vue.config.productionTip = false; new Vue({ router, // 在vue實(shí)例中添加router對象,就可以使用路由了 render: (h) => h(App), }).$mount("#app");
我們的2個(gè)組件代碼About
和Home
代碼如下:
// About.vue <template> <div class="about"> <h1>About</h1> </div> </template> <script> export default { name: "About" } </script> <style scoped> </style> // Home.vue <template> <div class="home"> <h1>Home</h1> </div> </template> <script> export default { name: "Home", }; </script> <style scoped> </style>
最后我們在App.vue
中,寫入如下代碼:
template> <div id="app"> <router-link to="/">首頁</router-link> <router-link to="/about">關(guān)于</router-link> <router-view></router-view> </div> </template> <style lang="scss"> </style>
使用<router-link>
來加載鏈接,然后使用to
表示跳轉(zhuǎn)的鏈接。最終會把<router-link>
渲染成<a>
標(biāo)簽。
<router-view>
是路由的出口,也就是相應(yīng)url
下的代碼會被渲染到這個(gè)地方來。
HTML5 history模式
但是當(dāng)我們啟動程序,訪問頁面的時(shí)候,url
地址上會出現(xiàn)#
這是因?yàn)?code>vue-router 默認(rèn) hash
模式 —— 使用 URL
的 hash
來模擬一個(gè)完整的 URL
,于是當(dāng) URL
改變時(shí),頁面不會重新加載。
如果不想要很丑的 hash
,我們可以用路由的 history
模式,這種模式充分利用 history.pushState API
來完成 URL
跳轉(zhuǎn)而無須重新加載頁面。
const router = new VueRouter({ mode: 'history', routes: [...] })
我們只需在router
文件夾下的index.js
中添加mode
為history
即可,之后重新訪問,http://localhost:8080/
就不會有#
號了
注意:history
模式還需要后臺配置支持。因?yàn)槲覀兊膽?yīng)用是個(gè)單頁客戶端應(yīng)用,如果后臺沒有正確的配置,當(dāng)用戶在瀏覽器直接訪問其他url
地址就會返回 404,這就不好看了。
所以呢,你要在服務(wù)端增加一個(gè)覆蓋所有情況的候選資源:如果 URL
匹配不到任何靜態(tài)資源,則應(yīng)該返回同一個(gè) index.html
頁面,這個(gè)頁面就是你 app
依賴的頁面。
到此這篇關(guān)于vue-route路由管理的安裝與配置 的文章就介紹到這了,更多相關(guān)vue route安裝與配置 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Django Vue實(shí)現(xiàn)動態(tài)菜單和動態(tài)權(quán)限
本文主要介紹了Django Vue實(shí)現(xiàn)動態(tài)菜單和動態(tài)權(quán)限,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06Nuxt.js實(shí)現(xiàn)一個(gè)SSR的前端博客的示例代碼
這篇文章主要介紹了Nuxt.js實(shí)現(xiàn)一個(gè)SSR的前端博客的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09vue下history模式刷新后404錯(cuò)誤解決方法
這篇文章主要介紹了vue下history模式刷新后404錯(cuò)誤解決方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-08-08vue項(xiàng)目在安卓低版本機(jī)顯示空白的原因分析(兩種)
本文給大家?guī)韛ue項(xiàng)目在安卓低版本機(jī)顯示空白的原因分析,根據(jù)各自需求給大家?guī)砹藘煞N原因分析,大家可以參考下2018-09-09