ElementUI之首页导航与左侧菜单

目录

一、Mock

1.1 什么是Mock.js

1.2 安装与配置

1.2.1 安装mock.js

1.2.2 引入mock.js

1.3 mock.js使用

1.3.1 定义测试数据文件

1.3.2 mock拦截Ajax请求

1.3.3 界面代码优化

二、总线

2.1 定义

2.2 类型分类

2.3 前期准备

2.4 配置组件与路由关系

2.4.1 配置组件

2.4.2 配置路由关系

2.5 展示效果


一、Mock

1.1 什么是Mock.js

Mock.js 是一个用于生成模拟数据的 JavaScript 库。它可以用于前端和后端开发中,用于创建模拟的接口和数据,以便在开发和测试过程中进行使用。

主要特点和用途如下:

  1. 模拟数据:Mock.js 可以生成各种类型的模拟数据,包括数字、文本、布尔值、数组、对象等。这对于前端开发来说很有用,特别是在没有真实后端接口的情况下。

  2. 模拟接口:可以使用 Mock.js 模拟后端接口的返回数据,这样前端开发人员可以在后端接口尚未完成的情况下进行开发和调试。

  3. 丰富的语法:Mock.js 提供了丰富的语法来定义模拟数据的规则,包括但不限于随机数据、正则表达式、函数生成器等。

  4. 易于使用:Mock.js 使用简单,可以快速集成到现有的项目中,提供快速的模拟数据功能。

 Mock.js 在前端领域风靡的原因有几个:

  1. 模拟数据需求:在前端开发中,经常会遇到需要模拟数据的情况,尤其是在前后端分离的项目中,前端需要独立开发和调试。Mock.js 提供了一种简单而强大的方式来生成模拟数据,填补了前端开发过程中的这一需求。

  2. 提升开发效率:使用 Mock.js 可以快速生成各种类型的模拟数据,无需等待后端接口的完成,可以在前端开发阶段就开始工作。这样可以大大提升了开发效率。

  3. 减少依赖:Mock.js 可以让前端团队在没有实际后端接口的情况下独立进行开发。这减少了前后端开发的依赖性,使得两个团队可以更加独立地工作。

  4. 适应前后端分离:随着前后端分离开发模式的普及,前端需要在后端接口尚未完成时进行开发和调试。Mock.js 提供了一种理想的解决方案,可以帮助前端开发人员模拟出所需的数据。

  5. 丰富的功能:Mock.js 提供了丰富的语法和选项,可以满足各种各样的模拟数据需求,包括但不限于随机数据、正则表达式、函数生成器等。

  6. 社区支持:Mock.js 在前端社区中有着广泛的认可和支持,拥有活跃的社区维护和更新,这也使得它成为了前端开发者的首选工具之一。

1.2 安装与配置

1.2.1 安装mock.js

Win+R输入cmd打开命令提示符,执行以下命令进行mock.js安装,如下:

npm i mockjs -D

注:-D表示只在开发环境中使用。

ElementUI之首页导航与左侧菜单_第1张图片

package.json中有以下代码即安装成功,如下:

ElementUI之首页导航与左侧菜单_第2张图片

安装完成之后,我们需要引入mock.js。

1.2.2 引入mock.js

为了只在开发环境使用mock,而打包到生产环境时自动不使用mock,我们可以在config目录中的dev.env.jsprod.env.js做一个配置,如下:

dev.env.js:

'use strict'
const merge = require('webpack-merge')
const prodEnv = require('./prod.env')

module.exports = merge(prodEnv, {
  NODE_ENV: '"development"',
  MOCK: 'true'
})

prod.env.js:

'use strict'
module.exports = {
  NODE_ENV: '"production"',
  MOCK: 'false'
}

 main.js:

//开发环境下才会引入mockjs
process.env.MOCK && require('@/mock') 

到这里我们引入部分就完成了。

1.3 mock.js使用

1.3.1 定义测试数据文件

在src目录下新建一个mock包,在mock包下定义测试数据文件,目录如下:

ElementUI之首页导航与左侧菜单_第3张图片

 login-mock.js:

// const loginInfo = {
// 	code: -1,
// 	message: '密码错误'
// }

//使用mockjs的模板生成随机数据
const loginInfo = {
	'code|-1-0': 0,
	'message|3-10': 'msg'
}
export default loginInfo;

1.3.2 mock拦截Ajax请求

在src/mock目录下创建index.js,定义拦截路由配置,如下:

index.js:

import Mock from 'mockjs' //引入mockjs,npm已安装
import action from '@/api/action' //引入请求地址

//全局设置:设置所有ajax请求的超时时间,模拟网络传输耗时
Mock.setup({
	// timeout: 400  //延时400s请求到数据
	timeout: 200 - 400 //延时200-400s请求到数据
})

//引登陆的测试数据,并添加至mockjs
import loginInfo from '@/mock/json/login-mock.js'
let s1 = action.getFullPath('SYSTEM_USER_DOLOGIN')
Mock.mock(s1, "post", loginInfo)
// Mock.mock(s1, /post|get/i, loginInfo)

1.3.3 界面代码优化

由于此次展示无需用到后端代码,所以博主就将昨天前后端交互用到的后端代码给备注了,换上了正常前后端分离开发所用的mock.js代码,如下:

Login.vue:







接着运行代码,测试结果如下:

ElementUI之首页导航与左侧菜单_第4张图片

二、总线

2.1 定义

在Java中,术语"总线"通常用于描述计算机体系结构或硬件架构中的概念。在计算机系统中,总线是一组物理线路或电子信道,用于传输数据、控制信号和地址信息在计算机内部的各个组件之间进行通信。

2.2 类型分类

总线在计算机体系结构中扮演了关键的角色,它连接了中央处理器(CPU)、内存、外部设备和其他组件,允许它们之间进行数据传输和交互。总线可分为三个主要类型:

  1. 数据总线(Data Bus):用于传输数据信息。它允许不同的设备(如CPU和内存)之间交换数据。

  2. 地址总线(Address Bus):用于指定内存或其他设备的物理地址。通过地址总线,CPU可以识别和访问特定的存储位置。

  3. 控制总线(Control Bus):用于传输控制信号,如读/写操作、时钟信号和中断信号等。控制总线控制计算机的各个部分相互之间的操作和同步。

总线的存在简化了计算机系统内部通信的复杂性。在Java中,虽然你不能直接控制硬件的总线,但你可以通过Java编程语言和相关的库和框架来与底层硬件进行交互和通信。

例如,在Java中,你可以使用网络编程库(如Java Socket)与其他计算机或设备进行数据通信;或者使用串口通信库(如RXTX)与外部设备进行串口通信。这些库和框架提供了抽象层,使得与硬件总线进行通信变得更加方便和易于实现。

2.3 前期准备

依需用到案例展示,我们需要用到三个组件和部分图片搭建页面,如下:

三个组件分别如下:

AppMain.vue:





LeftNav.vue:




TopNav.vue:






图片目录结构如下:

ElementUI之首页导航与左侧菜单_第5张图片

2.4 配置组件与路由关系

接下来就是要想让我们的组件能够成功展示,我们需要去配置他们路由的一些关系,如下,

2.4.1 配置组件

在router包下加入以下代码,如下:

import AppMain from '@/components/AppMain'
import LeftNav from '@/components/LeftNav'
import TopNav from '@/components/TopNav'

2.4.2 配置路由关系

在router包下加入以下代码,如下:

{
    path: '/AppMain',
    name: 'AppMain',
    component: AppMain,
    children: [
      {
        path: '/LeftNav',
        name: 'LeftNav',
        component: LeftNav
      },
      {
        path: '/TopNav',
        name: 'TopNav',
        component: TopNav
      }
    ]
  }]

main.js:

// The Vue build version to load with the `import` command
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
import Vue from 'vue'
//开发环境下才会引入mockjs
process.env.MOCK && require('@/mock')
// 新添加1
import ElementUI from 'element-ui'
// 新添加2,避免后期打包样式不同,要放在import App from './App';之前
import 'element-ui/lib/theme-chalk/index.css'

import App from './App'
import router from './router'

import axios from '@/api/http'
import VueAxios from 'vue-axios'

Vue.use(VueAxios,axios)
// 新添加3
Vue.use(ElementUI)
Vue.config.productionTip = false

/* eslint-disable no-new */
new Vue({
  el: '#app',
  router,
  data(){
    return{
      Bus:new Vue()
    }
  },
  components: { App },
  template: ''
})

2.5 展示效果

 展示代码效果如下:

ElementUI之首页导航与左侧菜单_第6张图片


最后使用ElementUI之首页导航与左侧菜单就到这里,祝大家在敲代码的路上一路通畅!

感谢大家的观看 !

ElementUI之首页导航与左侧菜单_第7张图片

 

你可能感兴趣的:(elementui,前端,javascript)