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 相关文章推荐
加速IE的Javascript document输出的方法
Dec 02 Javascript
yepnope.js 异步加载资源文件
Sep 08 Javascript
javascript获得服务器端控件的ID的实现代码
Dec 28 Javascript
JavaScript的事件绑定(方便不支持js的时候)
Oct 01 Javascript
jquery操作cookie插件分享
Jan 14 Javascript
浅谈EasyUI中Treegrid节点的删除
Mar 01 Javascript
浅谈javascript获取元素transform参数
Jul 24 Javascript
微信小程序 解析网页内容详解及实例
Feb 22 Javascript
vue-cli入门之项目结构分析
Apr 20 Javascript
jQuery实现动态删除LI的方法
May 30 jQuery
新版vue-cli模板下本地开发环境使用node服务器跨域的方法
Apr 03 Javascript
解决layui数据表格Date日期格式的回显Object的问题
Sep 19 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
在普通HTTP上安全地传输密码
2007/07/21 PHP
php与java通过socket通信的实现代码
2013/10/21 PHP
yii实现CheckBox复选框在同一行显示的方法
2014/12/03 PHP
Yii配置文件用法详解
2014/12/04 PHP
php+websocket 实现的聊天室功能详解
2020/05/27 PHP
图片之间的切换
2006/06/26 Javascript
可以显示单图片,多图片ajax请求的ThickBox3.1类下载
2007/12/23 Javascript
基于Jquery的仿Windows Aero弹出窗(漂亮的关闭按钮)
2010/09/28 Javascript
IE8下String的Trim()方法失效的解决方法
2013/11/08 Javascript
js实现键盘控制DIV移动的方法
2015/01/10 Javascript
JavaScript简单实现弹出拖拽窗口(一)
2016/06/17 Javascript
高效Web开发的10个jQuery代码片段
2016/07/22 Javascript
Chart.js 轻量级HTML5图表绘制工具库(知识整理)
2018/05/22 Javascript
使用微信小程序开发弹出框应用实例详解
2018/10/18 Javascript
Vue表单之v-model绑定下拉列表功能
2019/05/14 Javascript
TypeScript类型声明书写详解
2019/08/28 Javascript
Vue组件生命周期运行原理解析
2020/11/25 Vue.js
python实现数独算法实例
2015/06/09 Python
老生常谈Python进阶之装饰器
2017/05/11 Python
破解安装Pycharm的方法
2018/10/19 Python
解决Django中调用keras的模型出现的问题
2019/08/07 Python
浅析python中while循环和for循环
2019/11/19 Python
Python super()方法原理详解
2020/03/31 Python
在pycharm创建scrapy项目的实现步骤
2020/12/01 Python
纯CSS3打造动感漂亮时尚的扇形菜单
2014/03/18 HTML / CSS
Harrods英国:世界领先的奢侈品百货商店
2020/09/23 全球购物
C语言编程题
2015/03/09 面试题
小学教师的个人自我鉴定
2013/10/24 职场文书
安全标语大全
2014/06/10 职场文书
我们的节日元宵活动方案
2014/08/23 职场文书
2015年公司后勤管理工作总结
2015/05/13 职场文书
2016年党支部公开承诺书
2016/03/25 职场文书
PHP基本语法
2021/03/31 PHP
基于Redis实现分布式锁的方法(lua脚本版)
2021/05/12 Redis
Vue的生命周期一起来看看
2022/02/24 Vue.js
Spring Data JPA框架的核心概念和Repository接口
2022/04/28 Java/Android