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 function对象那些迷惑分析
Oct 24 Javascript
防止文件缓存的js代码
Jan 10 Javascript
js replace替换所有匹配的字符串
Feb 13 Javascript
总结jQuery插件开发中的一些要点
May 16 Javascript
JS实现标签滚动切换效果
Dec 25 Javascript
Vue 使用 Mint UI 实现左滑删除效果CellSwipe
Apr 27 Javascript
vue使用监听实现全选反选功能
Jul 06 Javascript
vue3.0 CLI - 2.3 - 组件 home.vue 中学习指令和绑定
Sep 14 Javascript
详解webpack打包vue项目之后生成的dist文件该怎么启动运行
Sep 06 Javascript
jQuery实现简单三级联动效果
Sep 05 jQuery
详解JavaScript 的执行机制
Sep 18 Javascript
关于JavaScript 中 if包含逗号表达式
Nov 27 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
[原创]smarty简单模板变量输出方法
2016/07/09 PHP
Laravel 5.1 框架Blade模板引擎用法实例分析
2020/01/04 PHP
Thinkphp 框架扩展之驱动扩展实例分析
2020/04/27 PHP
深入理解JavaScript系列(35):设计模式之迭代器模式详解
2015/03/03 Javascript
JavaScript仿静态分页实现方法
2015/08/04 Javascript
JavaScript中eval函数的问题
2016/01/31 Javascript
Nodejs获取网络数据并生成Excel表格
2020/03/31 NodeJs
Javascript基础_简单比较undefined和null 值
2016/06/14 Javascript
nodejs实现超简单生成二维码的方法
2018/03/17 NodeJs
一步步教会你微信小程序的登录鉴权
2018/04/09 Javascript
karma+webpack搭建vue单元测试环境的方法示例
2018/05/24 Javascript
基于vue实现web端超大数据量表格的卡顿解决
2019/04/02 Javascript
微信小程序云开发如何使用npm安装依赖
2019/05/18 Javascript
vue 集成 vis-network 实现网络拓扑图的方法
2019/08/07 Javascript
jQuery实时统计输入框字数及限制
2020/06/24 jQuery
JS字符串和数组如何实现相互转化
2020/07/02 Javascript
通过JS判断网页是否为手机打开
2020/10/28 Javascript
[35:34]Liquid vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python实现从订阅源下载图片的方法
2015/03/11 Python
python抓取网页内容并进行语音播报的方法
2018/12/24 Python
python变量赋值方法(可变与不可变)
2019/01/12 Python
python3在同一行内输入n个数并用列表保存的例子
2019/07/20 Python
深入解析神经网络从原理到实现
2019/07/26 Python
在Python中使用MySQL--PyMySQL的基本使用方法
2019/11/19 Python
python爬虫开发之Request模块从安装到详细使用方法与实例全解
2020/03/09 Python
在Ubuntu 20.04中安装Pycharm 2020.1的图文教程
2020/04/30 Python
PySide2出现“ImportError: DLL load failed: 找不到指定的模块”的问题及解决方法
2020/06/10 Python
如何使用python记录室友的抖音在线时间
2020/06/29 Python
开发人员所需要知道的HTML5性能分析面面观
2012/07/05 HTML / CSS
Fashion Eyewear美国:英国线上设计师眼镜和太阳镜的零售商
2016/08/15 全球购物
党员2014两会学习心得体会
2014/03/17 职场文书
财务担保书范文
2014/04/02 职场文书
小学领导班子对照材料
2014/08/23 职场文书
2016年社区“我们的节日·中秋节”活动总结
2016/04/05 职场文书
幼儿教师三分钟演讲稿
2019/06/21 职场文书
TV动画《神废柴☆偶像》公布先导PV
2022/03/20 日漫