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、入口頁面定義router-view
<div id="app"> <router-view></router-view> </div>
5、在path指向?yàn)椤?”的頁面中,定義頁面的布局,例如:上(頭部)-中(左道航-右內(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í),打開的是path路徑,對應(yīng)router中的path,就可以打開寫好的相應(yīng)的頁面。
items: [
{
icon: 'el-icon-share',
index: 'user',
title: '系統(tǒng)首頁'
},
{
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: '三級菜單',
subs: [
{
index: 'detail',
title: '富文本編輯器'
},
{
index: 'file',
title: 'markdown編輯器'
},
]
},
{
index: 'profiles',
title: '文件上傳'
}
]
},
]
7、如果涉及到登錄頁面和不需要路由的頁面等,就需要在router的js文件中定義和“/”平級的其他path的頁面,再判斷進(jìn)入頁面是路由頁面還是登錄等頁面。
以上所述是小編給大家介紹的vue路由--網(wǎng)站導(dǎo)航功能詳解整合,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
Vue 使用beforeEach實(shí)現(xiàn)登錄狀態(tài)檢查功能
今天小編就為大家分享一篇Vue 使用beforeEach實(shí)現(xiàn)登錄狀態(tài)檢查功能,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-10-10
vue3中的watch和watchEffect實(shí)例詳解
watch和watchEffect都是監(jiān)聽器,但在寫法和使用上有所區(qū)別,下面這篇文章主要給大家介紹了關(guān)于vue3中watch和watchEffect的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-05-05
基于Vue2實(shí)現(xiàn)動(dòng)態(tài)折扣表格
這篇文章主要為大家詳細(xì)介紹了如何基于Vue2實(shí)現(xiàn)動(dòng)態(tài)折扣表格,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-01-01
關(guān)于vue設(shè)置環(huán)境變量全流程
這篇文章主要介紹了關(guān)于vue設(shè)置環(huán)境變量全流程,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03

