vue路由--网站导航功能详解


Posted in Javascript onMarch 29, 2019

1、首先需要按照Vue router支持

npm install vue-router
然后需要在项目中引入:

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指向为“/”的页面中,定义页面的布局,例如:上(头部)-中(左道航-右内容)-下(底部)。

<HeaderSection></HeaderSection>
 <div>
  <NavList class="nav"></NavList>
  <router-view class="router"></router-view>
 </div>
<FooterSection></FooterSection>

6、左侧导航,用elementUI实现,有一个NavMenu导航菜单,做导航功能。

在这里提一下引入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);

导航栏的代码如下:

<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>

定义左侧导航的显示和图标等内容,index为唯一标识,打开的是path路径,对应router中的path,就可以打开写好的相应的页面。

items: [
     {
      icon: 'el-icon-share',
      index: 'user',
      title: '系统首页'
     },
     {
      icon: 'el-icon-time',
      index: 'profile',
      title: '基础表格'
     },
     {
      icon: 'el-icon-bell',
      index: '3',
      title: '表单相关',
      subs: [
       {
        index: 'form',
        title: '基本表单'
       },
       {
        index: '3-2',
        title: '三级菜单',
        subs: [
         {
          index: 'detail',
          title: '富文本编辑器'
         },
         {
          index: 'file',
          title: 'markdown编辑器'
         },
        ]
       },
       {
        index: 'profiles',
        title: '文件上传'
       }
      ]
     },
    ]

7、如果涉及到登录页面和不需要路由的页面等,就需要在router的js文件中定义和“/”平级的其他path的页面,再判断进入页面是路由页面还是登录等页面。

以上所述是小编给大家介绍的vue路由--网站导航功能详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
js中prototype用法详细介绍
Nov 14 Javascript
纯JS实现根据CSS的class选择DOM
Mar 22 Javascript
javascript性能优化之DOM交互操作实例分析
Dec 12 Javascript
小白谈谈对JS原型链的理解
May 03 Javascript
jQuery添加options点击事件并传值实例代码
May 18 Javascript
详解vue.js的devtools安装
May 26 Javascript
基于javascript中的typeof和类型判断(详解)
Oct 27 Javascript
浅谈webpack打包过程中因为图片的路径导致的问题
Feb 21 Javascript
js实现json数组分组合并操作示例
Feb 12 Javascript
深入学习JavaScript中的bom
May 27 Javascript
JavaScript实现拖拽效果
Mar 16 Javascript
在vue项目中引用Antv G2,以饼图为例讲解
Oct 28 Javascript
利用weixin-java-miniapp生成小程序码并直接返回图片文件流的方法
Mar 29 #Javascript
微信小程序实现获取小程序码和二维码java接口开发
Mar 29 #Javascript
详解vue项目打包步骤
Mar 29 #Javascript
jQuery实现动态添加和删除input框代码实例
Mar 29 #jQuery
Vue项目history模式下微信分享爬坑总结
Mar 29 #Javascript
vue中使用微信公众号js-sdk踩坑记录
Mar 29 #Javascript
微信小程序学习笔记之本地数据缓存功能详解
Mar 29 #Javascript
You might like
常用的PHP数据库操作方法(MYSQL版)
2011/06/08 PHP
PHP实现时间轴函数代码
2011/10/08 PHP
php数组声明、遍历、数组全局变量使用小结
2013/06/05 PHP
PHP mysql与mysqli事务使用说明 分享
2013/08/17 PHP
PHP获取数组中重复最多的元素的实现方法
2014/11/11 PHP
PHP中使用GD库创建圆形饼图的例子
2014/11/19 PHP
php版微信公众平台接口参数调试实现判断用户行为的方法
2016/09/23 PHP
jquery的键盘事件修改代码
2011/02/24 Javascript
IE下写xml文件的两种方式(fso/saveAs)
2013/08/05 Javascript
JQuery事件e参数的方法preventDefault()取消默认行为
2013/09/26 Javascript
javascript向后台传送相同属性的参数即数组参数
2014/02/17 Javascript
javascript 小数取整简单实现方式
2014/05/30 Javascript
精彩的Bootstrap案例分享 重点在注释!(选项卡、栅格布局)
2016/07/01 Javascript
vue.js 表格分页ajax 异步加载数据
2016/10/18 Javascript
JS使用正则表达式验证身份证号码
2017/06/23 Javascript
微信小程序之电影影评小程序制作代码
2017/08/03 Javascript
微信小程序日期选择器实例代码
2018/07/18 Javascript
使用VUE+iView+.Net Core上传图片的方法示例
2019/01/04 Javascript
vue+element UI实现树形表格带复选框的示例代码
2019/04/16 Javascript
如何在微信小程序里面退出小程序的方法
2019/04/28 Javascript
教你使用vue-cli快速构建的小说阅读器
2019/05/13 Javascript
JavaScript数组去重实现方法小结
2020/01/17 Javascript
vue 接口请求地址前缀本地开发和线上开发设置方式
2020/08/13 Javascript
小程序角标的添加及绑定购物车数量进行实时更新的实现代码
2020/12/07 Javascript
[01:06:07]2014 DOTA2国际邀请赛中国区预选赛5.21 DT VS CIS
2014/05/22 DOTA
介绍Python的Urllib库的一些高级用法
2015/04/30 Python
python3实现全角和半角字符转换的方法示例
2017/09/21 Python
python之pandas用法大全
2018/03/13 Python
Python 字符串与数字输出方法
2018/07/16 Python
一篇文章搞懂python的转义字符及用法
2020/09/03 Python
python 下载m3u8视频的示例代码
2020/11/11 Python
欧缇丽英国官方网站:Caudalie英国
2016/08/17 全球购物
仓管员岗位职责范文
2013/11/08 职场文书
党员岗位承诺口号大全
2014/03/28 职场文书
2014财务部年度工作总结
2014/12/08 职场文书
结婚保证书(三从四德)
2015/02/26 职场文书