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 相关文章推荐
基于jQuery的message插件实现右下角弹出消息框
Jan 11 Javascript
javascript中如何处理引号编码&amp;#034;
Aug 15 Javascript
jQuery中:input选择器用法实例
Jan 03 Javascript
JavaScript获取URL汇总
Jun 08 Javascript
js实现文字垂直滚动和鼠标悬停效果
Dec 31 Javascript
搭建Bootstrap离线文档的方法
Dec 02 Javascript
Vue的事件响应式进度条组件实例详解
Feb 04 Javascript
利用Angular2的Observables实现交互控制的方法
Dec 27 Javascript
layui监听单元格编辑前后交互的例子
Sep 16 Javascript
原生JS封装拖动验证滑块的实现代码示例
Jun 01 Javascript
微信小程序地图实现展示线路
Jul 29 Javascript
jQuery实现简单轮播图效果
Dec 27 jQuery
在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
PHP VS ASP
2006/10/09 PHP
PHP字符串 ==比较运算符的副作用
2009/10/21 PHP
PHP中spl_autoload_register函数的用法总结
2013/11/07 PHP
php 升级到 5.3+ 后出现的一些错误,如 ereg(); ereg_replace(); 函数报错
2015/12/07 PHP
php5.6.x到php7.0.x特性小结
2019/08/17 PHP
Laravel 实现Eloquent模型分组查询并返回每个分组的数量 groupBy()
2019/10/23 PHP
Laravel 微信小程序后端实现用户登录的示例代码
2019/11/26 PHP
20款非常优秀的 jQuery 工具提示插件 推荐
2012/07/15 Javascript
Javascript中的for in循环和hasOwnProperty结合使用
2013/06/05 Javascript
JS操作JSON要领详细总结
2013/08/25 Javascript
js select option对象小结
2013/12/20 Javascript
jquery事件重复绑定的快速解决方法
2014/01/03 Javascript
一个简单的动态加载js和css的jquery代码
2014/09/01 Javascript
js实现使用鼠标拖拽切换图片的方法
2015/05/04 Javascript
移动Web中图片自适应的两种JavaScript解决方法
2015/06/18 Javascript
javascript中for/in循环及使用技巧
2015/09/01 Javascript
js 判断所选时间(或者当前时间)是否在某一时间段的实现代码
2015/09/05 Javascript
jquery UI Datepicker时间控件的使用及问题解决
2016/04/28 Javascript
利用JavaScript阻止表单提交的两种方法
2016/08/11 Javascript
JavaScript实现拖拽元素对齐到网格(每次移动固定距离)
2016/11/30 Javascript
jquery uploadify如何取消已上传成功文件
2017/02/08 Javascript
原生js实现可拖拽效果
2017/02/28 Javascript
bootstrap timepicker在angular中取值并转化为时间戳
2017/06/13 Javascript
深入理解js A*寻路算法原理与具体实现过程
2018/12/13 Javascript
[01:35]2014DOTA2西雅图邀请赛 专访狐狸妈青春献给刀塔
2014/07/08 DOTA
在Python中操作时间之strptime()方法的使用
2020/12/30 Python
Python编程实现控制cmd命令行显示颜色的方法示例
2017/08/14 Python
python实现键盘控制鼠标移动
2020/11/27 Python
Python实现html转换为pdf报告(生成pdf报告)功能示例
2019/05/04 Python
容易被忽略的Python内置类型
2020/09/03 Python
JVM是一个编译程序还是解释程序
2012/09/11 面试题
创建文明城市标语
2014/06/16 职场文书
检察院起诉意见书
2015/05/20 职场文书
golang 实现并发求和
2021/05/08 Golang
golang fmt格式“占位符”的实例用法详解
2021/07/04 Golang
高通2023 年将发布高性能PC处理器
2022/04/29 数码科技