vue脚手架开发 + 事件总线$bus的妙用

项目背景:

在做上一个项目中,遇到过这样一个问题:
后端给的接口的数据中有公共数据,为了避免多次请求,前端避免不了的需要做数据储存,
而且如果是多次请求相同数据,前端页面的性能也将大打折扣。

【为了解决这个问题,我师父教了我一手,用$bus来储存数据,把它当成是全局的数据,然后就可以非常方便地拿到对应的值】

【在我的认知的里面,事件总线$bus只是用来处理兄弟组件之间通讯的问题,竟然还有这等妙用】

请往下看:

在main.js里面:

window.$bus = new Vue({
  data() {
    return {
      region: false,
      region_data: false,
      get_ip: false,

      get_access: false,测试
      abc: false,测试
      abd: false,测试
    };
  },
});

这一步就很妙啊
【bus实质上就是一个vue实例,可以直接放到了window对象里面
有了这一步操作后,我似乎感觉这个$bus里面的数据在全局都可以访问到了?
那究竟是不是呢?】

请看:

在router——index.js里面
在这里插入图片描述
之前我console.log()的部分我把它删掉了,但是事实证明,在router——index.js里面是可以访问到window.$bus的
而且还不用 import,非常强大,

有了这一个基础,全局储存公共数据就变得异常简单,哪还需要什么vuex啊
当然有一说一,这种方法,仅限于数据比较少,业务单一的情况,不然的话vuex该用还得用啊

好了,数据到手,后端颤抖:

在这里插入图片描述

注意:

【在用axios请求数据的时候,出现了一个bug】
在这里插入图片描述

你以为这就完了吗?

【受到上面的$bus的启发,不难发现】
事件总线还可以用来干一件很重要的事情——储存后端给前端的数据,即使后端下班回家了,我一样快乐地敲代码…
在这里插入图片描述

那究竟如何能实现呢?

【注:此方法仅限于json和JS格式并且数据量不大】
【步骤1】
在vue-cli——src里面创建一个mock文件夹——创建XXXX.json 或者 XXX.js 文件
容器搞好了,接下来就要动后端大佬给你的数据,嘿嘿,直接在postman里面请求一次,然后 Ctrl + c /v

最后搞到容器里面即可。
需要注意的是,如果数据本来就是json,容器也是json文件,就可以直接粘贴到容器里
但如果数据是json,容器是JS文件,那就需要在容器里面export default{数据}一下

必须满足上面我说的这两种情况,
不然在需要数据的地方import的时候,就会报文件格式的错误

个人分析:importexport default是息息相关的,能力有限,说不清楚。
原因解释:大佬解答

好了,数据算是成功拷贝和引入进来了,
接下来就可以直接赋值给$bus了

	import static_region from "../mock/get_region.json"
	import static_data from "../mock/get_count.json"
	
	window.$bus.region = static_region
    window.$bus.region_data = static_data

好了,数据又到了$bus这里了,那么就可以愉快地敲代码而不用担心后端回家?睡觉了…

写到最后,竟然有点想哭,hhh

本篇文章就是这些了,希望各位看官能有所收获

能力有限,欢迎纠错,一起进步。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值