SPA项目开发之首页导航+左侧菜单

一、mock.js模拟响应ajax请求

1、安装mockjs依赖

  npm install mockjs -D 

2、配置开发环境及生产环境
为了只在开发环境使用mock,而打包到生产环境时自动不使用mock,我们可以在env中做一个配置
(1)dev.env

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

(2)prod.env

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

(3)main.js

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

注1:import是ES6标准中的模块化解决方案,require是node中遵循CommonJS规范的模块化解决方案
后者支持动态引入,也就是require(${path}/xx.js)
3、mock的使用
在src目录下创建mock目录,定义mock主文件index.js,并在该文件中定义拦截路由配置,

导入公共模块及mockjs全局设置
      import Mock from 'mockjs' //引入mockjs,npm已安装
      import action from '@/api/action' //引入封装的请求地址
 
      //全局设置:设置所有ajax请求的超时时间,模拟网络传输耗时
      Mock.setup({
// timeout: 400  //延时400s请求到数据
timeout: 200 - 400 //延时200-400s请求到数据
      })
       

注1:index.js文件的作用很显然,就是将分散的xxx-mock文件集合起来.后面再添加新的mock文件,都需要在这里引入

二、前台主界面的搭建

1、 Container布局容器

2、 TopNav

  注1:使用数据总线,在非父子的组件之间通信,完成左侧菜单折叠

3、 LeftNav

三、退出功能

exit(){
				this.$router.push({
					path:'/Login'
				})
			}

四、左侧树收缩功能(vue总线的概念)

定义总线

new Vue({
  el: '#app',
  data(){
	  return {
		  Bus:new Vue({
		  	
		  })
	  }
  },
  router,
  components: { App },
  template: '<App/>'
})

在A组件触发事件
this. r o o t . B u s . root.Bus. root.Bus.emit(“事件名”, 参数1, 参数2, …);

doToggle(){
				this.collapsed = !this.collapsed;
				 this.$root.Bus.$emit("collapsed-side", this.collapsed);
			}

在B组件监听事件
this. r o o t . B u s . root.Bus. root.Bus.on(“事件名”, 回调函数);

this.$root.Bus.$on("collapsed-side", (v)=>{
				this.asideClass = v ? 'main-aside-collapsed':'main-aside';
			});
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值