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 相关文章推荐
jquery实现在页面加载完毕后获取图片高度或宽度
Jun 16 Javascript
JavaScript中的原型和继承详解(图文)
Jul 18 Javascript
在JavaScript中对HTML进行反转义详解
May 18 Javascript
微信小程序网络请求的封装与填坑之路
Apr 01 Javascript
让div运动起来 js实现缓动效果
Jul 06 Javascript
通过V8源码看一个关于JS数组排序的诡异问题
Aug 14 Javascript
详谈innerHTML innerText的使用和区别
Aug 18 Javascript
如何解决.vue文件url引用文件的问题
Jan 18 Javascript
浅谈bootstrap layer.open中end的使用方法
Sep 12 Javascript
Layui弹框中数据表格中可双击选择一条数据的实现
May 06 Javascript
详解如何在vue+element-ui的项目中封装dialog组件
Dec 11 Vue.js
vue3.0自定义指令(drectives)知识点总结
Dec 27 Vue.js
利用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新手NOTICE错误常见解决方法
2011/12/07 PHP
PHP callback函数使用方法和注意事项
2015/01/23 PHP
php实现简单的语法高亮函数实例分析
2015/04/27 PHP
ThinkPHP路由详解
2015/07/27 PHP
Yii快速入门经典教程
2015/12/28 PHP
php中namespace及use用法分析
2016/12/06 PHP
非常好的js代码
2006/06/27 Javascript
Javascript结合css实现网页换肤功能
2009/11/02 Javascript
js textarea自动增高并隐藏滚动条
2009/12/16 Javascript
jQuery Lightbox 图片展示插件使用说明
2010/04/25 Javascript
Jquery Post处理后不进入回调的原因及解决方法
2014/07/15 Javascript
jQuery中offset()方法用法实例
2015/01/16 Javascript
Bootstrap每天必学之导航条
2015/11/27 Javascript
jQuery+CSS实现一个侧滑导航菜单代码
2016/05/09 Javascript
简单谈谈axios中的get,post方法
2017/06/25 Javascript
代码详解javascript模块加载器
2018/03/04 Javascript
纯JS实现出生日期[年月日]下拉菜单效果
2018/06/01 Javascript
webpack打包多页面的方法
2018/11/30 Javascript
Nodejs中获取当前函数被调用的行数及文件名详解
2018/12/12 NodeJs
nodejs分离html文件里面的js和css的方法
2019/04/09 NodeJs
jQuery实现轮播图源码
2019/10/23 jQuery
24个解决实际问题的ES6代码片段(小结)
2020/02/02 Javascript
[15:57]教你分分钟做大人:斧王
2014/10/30 DOTA
[48:47]VGJ.S vs NB 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
详细解读Python中的__init__()方法
2015/05/02 Python
python 随机打乱 图片和对应的标签方法
2018/12/14 Python
Python实现定期检查源目录与备份目录的差异并进行备份功能示例
2019/02/27 Python
python字符串替换re.sub()方法解析
2019/09/18 Python
python实现每天自动签到领积分的示例代码
2020/08/18 Python
python爬虫利器之requests库的用法(超全面的爬取网页案例)
2020/12/17 Python
购买美国制造的相框和画框架:Picture Frames
2018/08/14 全球购物
Erwin Müller穆勒家居瑞士官网:您整个家庭的邮购公司
2019/12/28 全球购物
EJB需直接实现它的业务接口或Home接口吗,请简述理由
2016/11/23 面试题
化验室岗位职责
2015/02/14 职场文书
行政助理岗位职责范本
2015/04/11 职场文书
卫生保健工作总结2015
2015/05/18 职场文书