Vue.js系列之vue-router(上)(3)
說明:
我們項(xiàng)目現(xiàn)在用的是:vue2.0 + vue-cli + webpack + vue-router2.0 + vue-resource1.0.3
如果大家在實(shí)踐的過程中與本文所說的內(nèi)容有較大區(qū)別的話看看是不是版本問題。
本文是一系列文章,在我對Vue有了更深刻的理解認(rèn)識之后會(huì)對文章及時(shí)進(jìn)行修改或更正。歡迎大家批評指出錯(cuò)誤。以下是已完成的文章列表。
2.Vue.js系列之項(xiàng)目結(jié)構(gòu)說明(2)
概述
Vue非常適用于實(shí)踐單頁面應(yīng)用程序也就是平時(shí)大家說的比較多的SPA(single page application),這點(diǎn)應(yīng)該了解過Vue的應(yīng)該都知道吧。一般的單頁面應(yīng)用是基于路由或頁面之間的鏈接來形成的,Vue是基于路由和組件的,所以我們今天就來了解下vue-router。vue-router是Vue.js官方的路由插件,它和vue.js深度集成,用于設(shè)定訪問路徑,并將路徑和組件映射起來,我們給每個(gè)組件一個(gè)路由地址,跳轉(zhuǎn)路由相當(dāng)于組件切換。vue-router的內(nèi)容還是比較多的,這里我只分享我自己項(xiàng)目中用到的地方,其他地方大家可以看文檔啦。
vue-router官網(wǎng):http://router.vuejs.org/zh-cn/(中)
英文官網(wǎng)你知道啦,直接去掉后面的"zh-cn/"就好了。
開始使用vue-router
這里我假設(shè)大家之前都用模塊工程的方式實(shí)踐了一個(gè)vue Demo,在此基礎(chǔ)上我們添加vue-router。
1.安裝
npm install vue-router
2.在項(xiàng)目main.js中安裝路由插件
import Vue from 'vue' import VueRouter from 'vue-router' Vue.use(VueRouter)
3.在組件中使用路由
先看下路由跳轉(zhuǎn)的效果吧,大家注意看地址欄變化哈。

下面這個(gè)tabBar就是一個(gè)組件(偷偷告訴你,在微信小程序中,這個(gè)功能直接配置app.json文件就好了)
每個(gè)tab點(diǎn)擊時(shí)路由地址會(huì)相應(yīng)變化,其實(shí)是渲染相應(yīng)的組件,具體我們來看代碼。
footer.vue組件
<template>
<div class="footer">
<div class="readType" v-if="readType.count">{{readType.count}}</div>
<ul class="main-nav">
<li>
<router-link to="/home">
<i class="icon-nav icon-nav1"></i><span>首頁</span>
</router-link>
</li>
<li>
<router-link to="/quan" v-bind:class="{rrouter:activ}">
<i class="icon-nav icon-nav2"></i><span>學(xué)友圈</span>
</router-link>
</li>
<li>
<router-link to="/friend">
<i class="icon-nav icon-nav3"></i><span>學(xué)友</span>
</router-link>
</li>
<li>
<router-link to="/find">
<i class="icon-nav icon-nav4"></i><span>發(fā)現(xiàn)</span>
</router-link>
</li>
<li>
<router-link to="/mine">
<i class="icon-nav icon-nav5"></i><span>我的</span>
</router-link>
</li>
</ul>
</div>
</template>
這里有幾點(diǎn)需要知道:
1.使用 router-link 組件來導(dǎo)航.
2.通過傳入 `to` 屬性指定鏈接.
3.<router-link> 默認(rèn)會(huì)被渲染成一個(gè) `<a>` 標(biāo)簽
路由出口
我們前面說了,路由跳轉(zhuǎn)就是相應(yīng)組件在渲染,那么渲染的內(nèi)容是怎么顯示也頁面中的呢,那就是路由出口'<router-view></router-view>'做的事了,路由匹配到的組件將渲染在這里。
路由出口我們可以設(shè)置在當(dāng)前組件中也可以設(shè)置在其他組件中,項(xiàng)目中我們就將所有組件都渲染在最大的容器App.vue組件中(我們項(xiàng)目中App組件只作為渲染容器)。
<template> <div id="app"> <router-view></router-view> </div> </template>
JavaScript
定義路由文件可以直接寫在main.js文件中,也可以新建一個(gè)js文件,因?yàn)槲覀兊慕M件比較多,所以單獨(dú)把路由拿出來寫了一個(gè)router.js文件。
// 0. 如果使用模塊化機(jī)制編程,進(jìn)入Vue和VueRouter,要調(diào)用 Vue.use(VueRouter)
import Vue from 'vue'
import VueRouter from 'vue-router'
Vue.use(VueRouter)
// 1. 定義(路由)組件。
// 可以從其他文件 import 進(jìn)來,我們一般都是建好了組件再來寫路由的
// 所以就會(huì)有好多這樣的語句。
import home form "./components/home"
import login form "./components/login"
// 2. 定義路由
routes: [ //這里跟1.x有挺大區(qū)別,有接觸的自己看清楚哦
{
path: '/', //瀏覽器網(wǎng)路請求走通之后默認(rèn)就會(huì)去找域名下的根目錄,
name: 'home', //所以我們就把這個(gè)組件作為默認(rèn)首頁
component: home
},
{
path: '/login',
name: 'login',
component: login
}
]
// 3. 創(chuàng)建 router 實(shí)例,然后傳 `routes` 配置
// 你還可以傳別的配置參數(shù), 不過先這么簡單著吧。
const router = new VueRouter({ //你就當(dāng)const是var
routes
//(縮寫)相當(dāng)于 routes: routes
})
// 4. 創(chuàng)建和掛載根實(shí)例。
// 記得要通過 router 配置參數(shù)注入路由,
// 從而讓整個(gè)應(yīng)用都有路由功能
const app = new Vue({
router
}).$mount('#app')
// 現(xiàn)在,應(yīng)用已經(jīng)啟動(dòng)了!
總結(jié)
上篇先分享到這里,主要了解了有以下幾點(diǎn):
1.vue-router的安裝和使用
2.在組件模板中的書寫格式
3.知道了路由出口
4.如何定義一個(gè)路由
5.創(chuàng)建路由實(shí)例和掛載實(shí)例
下篇我將給大家繼續(xù)分享路由的其他用法(項(xiàng)目中用到的):
1.如何實(shí)現(xiàn)當(dāng)前頁激活,tab標(biāo)簽同時(shí)也激活,即active-class
2.路由跳轉(zhuǎn)時(shí)添加過渡動(dòng)效
3.路由傳參及命名路由
4.實(shí)現(xiàn)資源懶加載
5.編程式導(dǎo)航
6.router-link的其他表現(xiàn)形式
7.Router構(gòu)造詳細(xì)配置
內(nèi)容有點(diǎn)多,可能還要再分細(xì)一點(diǎn),寫詳細(xì)點(diǎn)。但還是想把自己遇到過的問題,用到的知識點(diǎn)通過自己的理解分享出來。
以上所述是小編給大家介紹的Vue.js系列之vue-router(上)(3),希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
- 詳解Vue.js項(xiàng)目API、Router配置拆分實(shí)踐
- vue.js vue-router如何實(shí)現(xiàn)無效路由(404)的友好提示
- 詳解Vue.js搭建路由報(bào)錯(cuò) router.map is not a function
- vue.js中Vue-router 2.0基礎(chǔ)實(shí)踐教程
- Vue.js實(shí)戰(zhàn)之利用vue-router實(shí)現(xiàn)跳轉(zhuǎn)頁面
- Vue.js路由vue-router使用方法詳解
- Vue.js:使用Vue-Router 2實(shí)現(xiàn)路由功能介紹
- Vue.js路由組件vue-router使用方法詳解
- Vue.js第二天學(xué)習(xí)筆記(vue-router)
- 實(shí)例講解Vue.js中router傳參
相關(guān)文章
vue+element UI實(shí)現(xiàn)樹形表格
這篇文章主要為大家詳細(xì)介紹了vue+element UI實(shí)現(xiàn)樹形表格,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-12-12
vue前端項(xiàng)目打包成Docker鏡像并運(yùn)行的實(shí)現(xiàn)
這篇文章主要介紹了vue前端項(xiàng)目打包成Docker鏡像并運(yùn)行的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08
Vue3+axios+Mock.js實(shí)現(xiàn)登錄功能的示例代碼
本文主要介紹了Vue3+axios+Mock.js實(shí)現(xiàn)登錄功能的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-05-05
vue 如何從單頁應(yīng)用改造成多頁應(yīng)用
這篇文章主要介紹了vue 如何從單頁應(yīng)用改造成多頁應(yīng)用,幫助大家更好的理解和使用vue,感興趣的朋友可以了解下2020-10-10

