- 資訊首頁(yè) > 開(kāi)發(fā)技術(shù) > web開(kāi)發(fā) > JavaScript >
- vue-route路由管理的安裝與配置方法
Vue Router
是 Vue.js
官方的路由管理器。它和 Vue.js
的核心深度集成,讓構建單頁(yè)面應用變得易如反掌。包含的功能有:
安裝命令
npm install vue-router --save
如果在一個(gè)模塊化工程中使用它,必須要通過(guò) Vue.use()
明確地安裝路由功能:
import Vue from 'vue' import VueRouter from 'vue-router' Vue.use(VueRouter)
之前我們使用腳手架vue-cli
創(chuàng )建項目時(shí),實(shí)際已經(jīng)配置好了router
,創(chuàng )建完項目后,在項目根目錄下會(huì )有一個(gè)router
文件夾,router
下有一個(gè)index.js
文件,內容如下:
import Vue from "vue"; import VueRouter from "vue-router"; import Home from "../views/Home.vue"; // 1. 當我們使用其他插件的時(shí)候,就必須使用Vue.use安裝插件 Vue.use(VueRouter); // 2. 定義路由,每個(gè)路由應該映射一個(gè)組件 const routes = [ { path: "/", name: "Home", component: Home, }, { path: "/about", name: "About", component: About }, ]; // 3. 創(chuàng )建router實(shí)例 const router = new VueRouter({ // 配置路由和組件之間的應用關(guān)系 routes, // (縮寫(xiě)) 相當于 routes: routes }); // 4. 導出router對象,然后在main.js中引用 export default router;
這個(gè)文件是專(zhuān)門(mén)配置路由的,最后將router
對象導出后,我們在項目的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
中,寫(xiě)入如下代碼:
template> <div id="app"> <router-link to="/">首頁(yè)</router-link> <router-link to="/about">關(guān)于</router-link> <router-view></router-view> </div> </template> <style lang="scss"> </style>
使用<router-link>
來(lái)加載鏈接,然后使用to
表示跳轉的鏈接。最終會(huì )把<router-link>
渲染成<a>
標簽。
<router-view>
是路由的出口,也就是相應url
下的代碼會(huì )被渲染到這個(gè)地方來(lái)。
但是當我們啟動(dòng)程序,訪(fǎng)問(wèn)頁(yè)面的時(shí)候,url
地址上會(huì )出現#
這是因為vue-router
默認 hash
模式 —— 使用 URL
的 hash
來(lái)模擬一個(gè)完整的 URL
,于是當 URL
改變時(shí),頁(yè)面不會(huì )重新加載。
如果不想要很丑的 hash
,我們可以用路由的 history
模式,這種模式充分利用 history.pushState API
來(lái)完成 URL
跳轉而無(wú)須重新加載頁(yè)面。
const router = new VueRouter({ mode: 'history', routes: [...] })
我們只需在router
文件夾下的index.js
中添加mode
為history
即可,之后重新訪(fǎng)問(wèn),http://localhost:8080/
就不會(huì )有#
號了
注意:history
模式還需要后臺配置支持。因為我們的應用是個(gè)單頁(yè)客戶(hù)端應用,如果后臺沒(méi)有正確的配置,當用戶(hù)在瀏覽器直接訪(fǎng)問(wèn)其他url
地址就會(huì )返回 404,這就不好看了。
所以呢,你要在服務(wù)端增加一個(gè)覆蓋所有情況的候選資源:如果 URL
匹配不到任何靜態(tài)資源,則應該返回同一個(gè) index.html
頁(yè)面,這個(gè)頁(yè)面就是你 app
依賴(lài)的頁(yè)面。
到此這篇關(guān)于vue-route路由管理的安裝與配置 的文章就介紹到這了,更多相關(guān)vue route安裝與配置 內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。
Copyright ? 2009-2022 56dr.com. All Rights Reserved. 特網(wǎng)科技 特網(wǎng)云 版權所有 特網(wǎng)科技 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 百度云 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2
建議您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流瀏覽器瀏覽本網(wǎng)站