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 相关文章推荐
判断多个元素(RADIO,CHECKBOX等)是否被选择的原理说明
Feb 18 Javascript
Javascript 倒计时源代码.(时.分.秒) 详细注释版
May 09 Javascript
jQuery.each()用法分享
Jul 31 Javascript
JS和jquery获取各种屏幕的宽度和高度的代码
Aug 02 Javascript
Javascript alert消息换行的方法
Aug 07 Javascript
页面刷新时记住滚动条的位置jquery代码
Jun 17 Javascript
jQuery通过写入cookie实现更换网页背景的方法
Apr 15 Javascript
深入理解js中this的用法
May 28 Javascript
解析Javascript单例模式概念与实例
Dec 05 Javascript
Vue.js 2.0和Cordova开发webApp环境搭建方法
Feb 26 Javascript
大转盘抽奖小程序版 转盘抽奖网页版
Apr 16 Javascript
vue封装自定义指令之动态显示title操作(溢出显示,不溢出不显示)
Nov 12 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
WML,Apache,和 PHP 的介绍
2006/10/09 PHP
需要使用php模板的朋友必看的很多个顶级PHP模板引擎比较分析
2008/05/26 PHP
取得单条网站评论以数组形式进行输出
2014/07/28 PHP
CodeIgniter读写分离实现方法详解
2016/01/20 PHP
PHP的PDO连接讲解
2019/01/24 PHP
jQuery的:parent选择器定义和用法
2014/07/01 Javascript
JavaScript中常见获取元素的方法汇总
2015/03/04 Javascript
jquery预加载图片的方法
2015/05/27 Javascript
JavaScript中的Math.E属性使用详解
2015/06/12 Javascript
使用Node.js为其他程序编写扩展的基本方法
2015/06/23 Javascript
javascript下拉列表菜单的实现方法
2015/11/18 Javascript
对jQuary选择器的全面总结
2016/06/20 Javascript
第一篇初识bootstrap
2016/06/21 Javascript
JavaScript中省略元素对数组长度的影响
2016/10/26 Javascript
Vue.js路由组件vue-router使用方法详解
2016/12/02 Javascript
微信小程序中单位rpx和rem的使用
2016/12/06 Javascript
JS中事件冒泡和事件捕获介绍
2016/12/13 Javascript
javascript定时器取消定时器及优化方法
2017/07/08 Javascript
微信小程序报错:this.setData is not a function的解决办法
2017/09/27 Javascript
elementui的默认样式修改方法
2018/02/23 Javascript
vue-router传递参数的几种方式实例详解
2018/11/13 Javascript
Vue.use()在new Vue() 之前使用的原因浅析
2019/08/26 Javascript
vue组件系列之TagsInput详解
2020/05/14 Javascript
让Vue响应Map或Set的变化操作
2020/11/11 Javascript
element el-table表格的二次封装实现(附表格高度自适应)
2021/01/19 Javascript
python实现按首字母分类查找功能
2019/10/31 Python
基于django 的orm中非主键自增的实现方式
2020/05/18 Python
win10安装python3.6的常见问题
2020/07/01 Python
python re.match()用法相关示例
2021/01/27 Python
python实现录制全屏和选择区域录屏功能
2021/02/05 Python
HTML5中的强制下载属性download使用实例解析
2016/05/12 HTML / CSS
优秀的毕业生的自我评价
2013/12/12 职场文书
大学生职业生涯规划书范文
2014/01/04 职场文书
退休欢送会主持词
2015/07/01 职场文书
如何撰写促销方案?
2019/07/05 职场文书
javascript的setTimeout()使用方法总结
2021/11/20 Javascript