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 相关文章推荐
JavaScript的模块化:封装(闭包),继承(原型) 介绍
Jul 22 Javascript
JS正则验证邮箱的格式详细介绍
Nov 19 Javascript
bootstrap改变按钮加载状态
Dec 01 Javascript
js关于命名空间的函数实例
Feb 05 Javascript
JS生成不重复的随机数组的简单实例
Jul 10 Javascript
关于RequireJS的简单介绍即使用方法
Oct 20 Javascript
jQuery使用方法
Feb 04 Javascript
xmlplus组件设计系列之图标(ICON)(1)
May 05 Javascript
javascript编程开发中取色器及封装$函数用法示例
Aug 09 Javascript
js判断文件类型大小并给出提示的实现方法
Jan 03 Javascript
JavaScript 点击触发复制功能实例详解
Nov 02 Javascript
JavaScript的Set数据结构详解
Feb 18 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
thinkPHP实现递归循环栏目并按照树形结构无限极输出的方法
2016/05/19 PHP
PHP生成及获取JSON文件的方法
2016/08/23 PHP
laravel学习笔记之模型事件的几种用法示例
2017/08/15 PHP
Linux基于php-fpm模式的lamp搭建phpmyadmin的方法
2018/10/25 PHP
location.href 在IE6中不跳转的解决方法与推荐使用代码
2010/07/08 Javascript
NodeJS框架Express的模板视图机制分析
2011/07/19 NodeJs
JavaScript高级程序设计阅读笔记(十六) javascript检测浏览器和操作系统-detect.js
2012/08/14 Javascript
JavaScript中输出标签的方法
2014/08/27 Javascript
用NODE.JS中的流编写工具是要注意的事项
2016/03/01 Javascript
jQuery设置Cookie及删除Cookie实例分析
2016/04/15 Javascript
基于jQuery实现发送短信验证码后的倒计时功能(无视页面关闭)
2016/09/02 Javascript
完美实现js选项卡切换效果(二)
2017/03/08 Javascript
JS中移除非数字最多保留一位小数
2018/05/09 Javascript
Vue头像处理方案小结
2018/07/26 Javascript
微信小程序class封装http代码实例
2019/08/24 Javascript
vue v-for直接循环数字实例
2019/11/07 Javascript
vue 实现图片懒加载功能
2020/12/31 Vue.js
[02:40]2014DOTA2 国际邀请赛中国区预选赛 四大豪门抵达华西村
2014/05/23 DOTA
python使用cStringIO实现临时内存文件访问的方法
2015/03/26 Python
python数据结构之图的实现方法
2015/07/08 Python
人工智能最火编程语言 Python大战Java!
2017/11/13 Python
解决Django数据库makemigrations有变化但是migrate时未变动问题
2018/05/30 Python
eclipse创建python项目步骤详解
2019/05/10 Python
怎么解决pycharm license Acti的方法
2020/10/28 Python
电信专业毕业生推荐信
2013/11/18 职场文书
视光学毕业生自荐书范文
2014/02/13 职场文书
英语系本科生求职信
2014/07/15 职场文书
寒暑假实习证明书模板
2014/11/29 职场文书
就业意向协议书
2015/01/29 职场文书
学校教学工作总结2015
2015/05/19 职场文书
举起手来观后感
2015/06/09 职场文书
2015重阳节敬老活动总结
2015/07/29 职场文书
六一亲子活动感想
2015/08/07 职场文书
Opencv中cv2.floodFill算法的使用
2021/06/18 Python
python中取整数的几种方法
2021/11/07 Python
SQL基础的查询语句
2021/11/11 MySQL