vue路由--網(wǎng)站導(dǎo)航功能詳解
1、首先需要按照Vue router支持
npm install vue-router
然后需要在項(xiàng)目中引入:
import Vue from 'vue' import VueRouter from 'vue-router' Vue.use(VueRouter)
2、定義router的js文件
import Vue from 'vue'
import Router from 'vue-router'
import User from '../pages/user'
import Home from '../pages/public/home'
import Profile from '../pages/user/profile'
import Form from '../pages/form'
import Detail from '../pages/form/form'
import File from '../pages/form/file'
import Files from '../pages/file'
Vue.use(Router)
export default new Router({
routes: [
{ path: '/', component:Home,
children:[
{ path: '/user', component:Profile},
{ path: '/profile', component: User},
{ path: '/form', component: Form},
{ path: '/detail', component: Detail},
{ path: '/profiles', component: Files},
{ path: '/file', component: File}
]
},
{ path: '/login', component:Login},
{ path: '/404', component:Error}
]
})
3、在main.js中引入router
import router from './router'
new Vue({
router,
render: h => h(App),
}).$mount('#app')
4、入口頁(yè)面定義router-view
<div id="app"> <router-view></router-view> </div>
5、在path指向?yàn)椤?”的頁(yè)面中,定義頁(yè)面的布局,例如:上(頭部)-中(左道航-右內(nèi)容)-下(底部)。
<HeaderSection></HeaderSection> <div> <NavList class="nav"></NavList> <router-view class="router"></router-view> </div> <FooterSection></FooterSection>
6、左側(cè)導(dǎo)航,用elementUI實(shí)現(xiàn),有一個(gè)NavMenu導(dǎo)航菜單,做導(dǎo)航功能。
在這里提一下引入elementUI:
(1)安裝
npm i element-ui -S
(2)使用
在main.js中加入下面的代碼:
import ElementUI from 'element-ui'; import 'element-ui/lib/theme-chalk/index.css'; Vue.use(ElementUI);
導(dǎo)航欄的代碼如下:
<el-menu class="sidebar-el-menu" :default-active="onRoutes" :collapse="collapse" background-color="#324157"
text-color="#bfcbd9" active-text-color="#20a0ff" unique-opened router>
<template v-for="item in items">
<template v-if="item.subs">
<el-submenu :index="item.index" :key="item.index">
<template slot="title">
<i :class="item.icon"></i><span slot="title">{{ item.title }}</span>
</template>
<template v-for="subItem in item.subs">
<el-submenu v-if="subItem.subs" :index="subItem.index" :key="subItem.index">
<template slot="title">{{ subItem.title }}</template>
<el-menu-item v-for="(threeItem,i) in subItem.subs" :key="i" :index="threeItem.index">
{{ threeItem.title }}
</el-menu-item>
</el-submenu>
<el-menu-item v-else :index="subItem.index" :key="subItem.index">
{{ subItem.title }}
</el-menu-item>
</template>
</el-submenu>
</template>
<template v-else>
<el-menu-item :index="item.index" :key="item.index">
<i :class="item.icon"></i><span slot="title">{{ item.title }}</span>
</el-menu-item>
</template>
</template>
</el-menu>
定義左側(cè)導(dǎo)航的顯示和圖標(biāo)等內(nèi)容,index為唯一標(biāo)識(shí),打開(kāi)的是path路徑,對(duì)應(yīng)router中的path,就可以打開(kāi)寫(xiě)好的相應(yīng)的頁(yè)面。
items: [
{
icon: 'el-icon-share',
index: 'user',
title: '系統(tǒng)首頁(yè)'
},
{
icon: 'el-icon-time',
index: 'profile',
title: '基礎(chǔ)表格'
},
{
icon: 'el-icon-bell',
index: '3',
title: '表單相關(guān)',
subs: [
{
index: 'form',
title: '基本表單'
},
{
index: '3-2',
title: '三級(jí)菜單',
subs: [
{
index: 'detail',
title: '富文本編輯器'
},
{
index: 'file',
title: 'markdown編輯器'
},
]
},
{
index: 'profiles',
title: '文件上傳'
}
]
},
]
7、如果涉及到登錄頁(yè)面和不需要路由的頁(yè)面等,就需要在router的js文件中定義和“/”平級(jí)的其他path的頁(yè)面,再判斷進(jìn)入頁(yè)面是路由頁(yè)面還是登錄等頁(yè)面。
以上所述是小編給大家介紹的vue路由--網(wǎng)站導(dǎo)航功能詳解整合,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
- Vue動(dòng)態(tài)路由緩存不相互影響的解決辦法
- vue+Vue Router多級(jí)側(cè)導(dǎo)航切換路由(頁(yè)面)的實(shí)現(xiàn)代碼
- vue路由前進(jìn)后退動(dòng)畫(huà)效果的實(shí)現(xiàn)代碼
- 簡(jiǎn)述vue路由打開(kāi)一個(gè)新的窗口的方法
- vue地址欄直接輸入路由無(wú)效問(wèn)題的解決
- 詳解解決Vue相同路由參數(shù)不同不會(huì)刷新的問(wèn)題
- vue3.0 CLI - 3.2 路由的初級(jí)使用教程
- 基于vue-router 多級(jí)路由redirect 重定向的問(wèn)題
- vue后臺(tái)管理之動(dòng)態(tài)加載路由的方法
相關(guān)文章
vue實(shí)現(xiàn)簡(jiǎn)易的計(jì)算器功能
這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)簡(jiǎn)易的計(jì)算器功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-11-11
Vue.js實(shí)現(xiàn)文件上傳和進(jìn)度條顯示功能
在現(xiàn)代Web開(kāi)發(fā)中,文件上傳是一個(gè)常見(jiàn)而重要的需求,無(wú)論是在用戶(hù)上傳頭像、文檔或者其他類(lèi)型的文件時(shí),良好的用戶(hù)體驗(yàn)都是至關(guān)重要的,在這篇博客中,我們將介紹如何使用Vue.js來(lái)實(shí)現(xiàn)文件上傳功能,同時(shí)顯示上傳進(jìn)度條,需要的朋友可以參考下2024-11-11
vue項(xiàng)目啟動(dòng)時(shí)無(wú)法識(shí)別es6的擴(kuò)展語(yǔ)法的解決
啟動(dòng)項(xiàng)目時(shí)遇到ES6的拓展運(yùn)算符報(bào)錯(cuò)可以通過(guò)切換到淘寶鏡像,以及在項(xiàng)目根目錄下新增.babelrc和postcss.config.js文件來(lái)解決,這些操作有助于正確配置項(xiàng)目環(huán)境,從而避免報(bào)錯(cuò),并保證項(xiàng)目的順利運(yùn)行,希望這些經(jīng)驗(yàn)?zāi)軌驇椭接龅较嗤瑔?wèn)題的開(kāi)發(fā)者2024-10-10
基于Vue3實(shí)現(xiàn)鼠標(biāo)滑動(dòng)和滾輪控制的輪播
在這篇文章主要為大家詳細(xì)介紹了如何一步步地實(shí)現(xiàn)一個(gè)基于?Vue?3?的輪播組件,這個(gè)組件的特點(diǎn)是可以通過(guò)鼠標(biāo)滑動(dòng)和滾輪來(lái)控制輪播圖的切換,感興趣的可以了解下2024-02-02
淺析Vue中權(quán)限管理的實(shí)現(xiàn)
在前端開(kāi)發(fā)中,權(quán)限管理是一項(xiàng)至關(guān)重要的任務(wù),本教程將深入探討如何在?Vue.js?項(xiàng)目中實(shí)施權(quán)限管理,并詳細(xì)講解如何實(shí)現(xiàn)到按鈕級(jí)別的細(xì)粒度控制,希望對(duì)大家有所幫助2024-11-11

