vue-cli 使用vue-bus来全局控制的实例讲解


Posted in Javascript onSeptember 15, 2018

讲真,我写标题的时候不知道怎么写的好,之前写过一篇关于vue-bus的,不过是基础版本的,今天讲的是用脚手架来搭建的环境下的使用
与使用路由相似,我们需要先倒入这个vue-bus

指令如下:

npm install vue-bus

vue-cli 使用vue-bus来全局控制的实例讲解

导入成功后,我们就要去使用它,(还是参考路由)

我们在代码中写下:

<code class="language-html">import bus from "vue-bus" 
Vue.use(bus); 
 
</code>

是的,这跟路由很想,这点无需怀疑,接着我们可以参考下我上回的那个模板。依旧是三部曲,现在我们已经完成了部署环境这一步,接着是要去提交(emit方法)

this.$bus.$emit("password", this.password);

但是,这里要注意一点,就是作用域的问题,(es5写法下)。比如在下面代码中:

methods1: function(a) {
  console.log(a);
  var _this = this;
  //转化为base64,并且显示在页面上
  console.log(a.target.files[0]);
  var image = new Image();
  var reader = new FileReader();
  reader.readAsDataURL(a.target.files[0]);
  reader.onload = function(e) {
   console.log(e.target.result);
   _this.imglist[a.target.dataset.index].img = e.target.result;
  }
  },

上方代码是一段将file转化为base64的代码。其中,当我们在最外层使用this的时候,他的指向是我们想要的,包含这个组件的this,但是当我们在onload函数中使用this,那就嘻嘻了,所以这些由于自己不小心踏入的坑要避免

接着我们上去获取我们所要的信息,依旧是用on方法(相似的,如果是使用once方法。则是只有一次)

很多情况下,由于on方法是去监听,所以我们是要越早定义越好,所以基本都是在created中定义

created: function() {
  console.log(this.showinfo);
  var _this = this;
  this.$bus.$on("changes", function(a, b) {
  console.log(_this.showinfo);
  //this.showinfo[0].text="2017-00-00";
  _this.showinfo = [{ text: "生日", value: "2017-01-01" }, { text: "星座", value: "白羊座" }, { text: "职业", value: "IT" }]
  }, );
  _this.$bus.$on("showmyticket", function() { 
  _this.isshowbarrage_black=true;
  _this.isshowmyticket=true;
  });
 },

其中应该都注意到了,这里依旧是那个坑的问题,如果不这样做,我们在使用过后可能会出现这个现象

vue-cli 使用vue-bus来全局控制的实例讲解

这就是bug大的出生原因了,这时候我们就要考虑作用域的问题了

vue-cli 使用vue-bus来全局控制的实例讲解

基本就是这些。而且相对于vuex,vue-bus更简单,而且不会再局限于兄弟组件之间,而且在父子级别中也可以使用,但是请小心,因为他是监听状态,所以使用emit的时候要谨慎,当然,我也不强制要求你去销毁这个bus,希望大家都多去试试。

以上这篇vue-cli 使用vue-bus来全局控制的实例讲解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
使用TextRange获取输入框中光标的位置的代码
Mar 08 Javascript
javascript事件模型代码
Jul 01 Javascript
Kibo 用于处理键盘事件的Javascript工具库
Oct 28 Javascript
jquery操作HTML5 的data-*的用法实例分享
Aug 17 Javascript
javascript RegExp 使用说明
May 21 Javascript
AngularJS入门教程之过滤器用法示例
Nov 02 Javascript
用jQuery实现圆点图片轮播效果
Mar 19 Javascript
bootstrap动态调用select下拉框的实例代码
Aug 09 Javascript
vue-cli3脚手架的配置及使用教程
Aug 28 Javascript
详解React中合并单元格的正确写法
Jan 08 Javascript
微信小程序实现动态列表项的顺序加载动画
Jul 25 Javascript
Vue 实现监听窗口关闭事件,并在窗口关闭前发送请求
Sep 01 Javascript
在vue中实现点击选择框阻止弹出层消失的方法
Sep 15 #Javascript
对vue下点击事件传参和不传参的区别详解
Sep 15 #Javascript
vue-cli webpack 引入swiper的操作方法
Sep 15 #Javascript
swiper在vue项目中loop循环轮播失效的解决方法
Sep 15 #Javascript
解决vue中虚拟dom,无法实时更新的问题
Sep 15 #Javascript
js事件on动态绑定数据,绑定多个事件的方法
Sep 15 #Javascript
vue 的点击事件获取当前点击的元素方法
Sep 15 #Javascript
You might like
关于mysql字符集设置了character_set_client=binary 在gbk情况下会出现表描述是乱码的情况
2013/01/06 PHP
php解析非标准json、非规范json的方式实例
2020/12/10 PHP
JavaScript中的事件处理
2008/01/16 Javascript
学习ExtJS 访问容器对象
2009/10/07 Javascript
jQuery判断复选框是否勾选的原理及示例
2014/05/21 Javascript
一行命令搞定node.js 版本升级
2014/07/20 Javascript
jQuery中ajax的load()与post()方法实例详解
2016/01/05 Javascript
Vue.js系列之项目结构说明(2)
2017/01/03 Javascript
canvas雪花效果核心代码分享
2017/02/19 Javascript
vuex与组件联合使用的方法
2018/05/10 Javascript
ES6中的class是如何实现的(附Babel编译的ES5代码详解)
2019/05/17 Javascript
Vue实现回到顶部和底部动画效果
2019/07/31 Javascript
微信小程序在text文本实现多种字体样式
2019/11/08 Javascript
js编写简易的计算器
2020/07/29 Javascript
js实现筛选功能
2020/11/24 Javascript
使用Python的SymPy库解决数学运算问题的方法
2019/03/27 Python
python的turtle库使用详解
2019/05/10 Python
python中的RSA加密与解密实例解析
2019/11/18 Python
Python 静态方法和类方法实例分析
2019/11/21 Python
Python类中self参数用法详解
2020/02/13 Python
在python3.9下如何安装scrapy的方法
2021/02/03 Python
css3模拟jq点击事件的实例代码
2017/07/06 HTML / CSS
Html5新增标签有哪些
2017/04/13 HTML / CSS
中国网上药店领导者:1药网
2017/02/16 全球购物
高街生活方式全球在线商店:AZBRO
2017/08/26 全球购物
英智兴达软件测试笔试题
2016/10/12 面试题
设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。
2014/12/30 面试题
商场消防管理制度
2014/01/12 职场文书
岗位廉洁从政承诺书
2014/03/27 职场文书
幼儿园亲子活动总结
2014/04/26 职场文书
销售辞职信范文
2015/03/02 职场文书
会议主持人开场白台词
2015/05/28 职场文书
读《钢铁是怎样炼成的》有感:百炼方成钢
2019/11/05 职场文书
python基于tkinter制作m3u8视频下载工具
2021/04/24 Python
Linux磁盘管理方法介绍
2022/06/01 Servers
Java Redisson多策略注解限流
2022/09/23 Java/Android