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 相关文章推荐
腾讯UED 漂亮的提示信息效果代码
Sep 12 Javascript
jQuery contains过滤器实现精确匹配使用方法
Apr 12 Javascript
文件编码导致jquery失效的解决方法
Jun 26 Javascript
jquery退出each循环的写法
Feb 26 Javascript
JavaScript中关键字 in 的使用方法详解
Oct 17 Javascript
AngularJS过滤器filter用法实例分析
Nov 04 Javascript
javascript中数组(Array)对象和字符串(String)对象的常用方法总结
Dec 15 Javascript
自定义vue全局组件use使用、vuex的使用详解
Jun 14 Javascript
Vue+webpack项目配置便于维护的目录结构教程详解
Oct 14 Javascript
详解微信小程序scroll-view横向滚动的实践踩坑及隐藏其滚动条的实现
Mar 14 Javascript
Element实现表格嵌套、多个表格共用一个表头的方法
May 09 Javascript
微信小程序自定义tabBar的踩坑实践记录
Nov 06 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
盘点被央视点名过的日本动画电影 一部比一部强
2020/03/08 日漫
劣质的PHP代码简化
2010/02/08 PHP
php无限级分类实现方法分析
2016/10/19 PHP
php实现简易计算器
2020/08/28 PHP
js右键菜单效果代码
2007/07/21 Javascript
jQuery-ui中自动完成实现方法
2010/06/10 Javascript
cnblogs 代码高亮显示后的代码复制问题解决实现代码
2011/12/14 Javascript
js打开windows上的可执行文件示例
2014/05/27 Javascript
asp.net+js实现金额格式化
2015/02/27 Javascript
EasyUI实现二级页面的内容勾选的方法
2015/03/01 Javascript
js 弹出虚拟键盘修改密码的简单实例
2016/10/10 Javascript
详解vue中computed 和 watch的异同
2017/06/30 Javascript
使用vs code开发Nodejs程序的使用方法
2017/09/21 NodeJs
Vue写一个简单的倒计时按钮功能
2018/04/20 Javascript
Vue实现table上下移动功能示例
2019/02/21 Javascript
详谈vue中router-link和传统a链接的区别
2020/07/22 Javascript
Python基础语法(Python基础知识点)
2016/02/28 Python
python 数字类型和字符串类型的相互转换实例
2018/07/17 Python
python中join()方法介绍
2018/10/11 Python
详解python中的生成器、迭代器、闭包、装饰器
2019/08/22 Python
python关于变量名的基础知识点
2020/03/03 Python
Jupyter Notebook的连接密码 token查询方式
2020/04/21 Python
python爬虫中抓取指数的实例讲解
2020/12/01 Python
详解CSS3中使用gradient实现渐变效果的方法
2015/08/18 HTML / CSS
html5超简单的localStorage实现记住密码的功能实现
2017/09/07 HTML / CSS
HTML5 直播疯狂点赞动画实现代码 附源码
2020/04/14 HTML / CSS
canvas 绘图时位置偏离的问题解决
2020/09/16 HTML / CSS
英语一分钟演讲稿
2014/04/29 职场文书
社区班子个人对照检查材料思想汇报
2014/10/07 职场文书
新郎婚礼答谢词
2015/01/04 职场文书
2015年维修工作总结
2015/04/25 职场文书
校园之声广播稿
2015/08/18 职场文书
2016年政治理论学习心得体会
2016/01/25 职场文书
《我的伯父鲁迅先生》教学反思
2016/02/16 职场文书
Python Pandas读取Excel日期数据的异常处理方法
2022/02/28 Python
Redis基本数据类型Zset有序集合常用操作
2022/06/01 Redis