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 相关文章推荐
下载站控制介绍字数显示的脚本 显示全部 隐藏介绍等功能
Sep 19 Javascript
Javascript中的isNaN函数使用说明
Nov 10 Javascript
jQuery动画效果-slideUp slideDown上下滑动示例代码
Aug 28 Javascript
了解了这些才能开始发挥jQuery的威力
Oct 10 Javascript
巧用局部变量提升javascript性能
Feb 24 Javascript
JQuery实现动态适时改变字体颜色的方法
Mar 10 Javascript
原生js结合html5制作简易的双色子游戏
Mar 30 Javascript
jQuery实现简单的点赞效果
May 29 Javascript
对jquery的ajax进行二次封装以及ajax缓存代理组件:AjaxCache详解
Apr 11 Javascript
同步异步动态引入js文件的几种方法总结
Sep 23 Javascript
JavaScript正则表达式exec/g实现多次循环用法示例
Jan 17 Javascript
node基于async/await对mysql进行封装
Jun 20 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
php4的session功能评述(二)
2006/10/09 PHP
约瑟夫环问题的PHP实现 使用PHP数组内部指针操作函数
2010/10/12 PHP
php利用iframe实现无刷新文件上传功能的代码
2011/09/29 PHP
ThinkPHP2.0读取MSSQL提示Incorrect syntax near the keyword 'AS'的解决方法
2014/06/25 PHP
10个超级有用值得收藏的PHP代码片段
2015/01/22 PHP
PHP如何实现Unicode和Utf-8编码相互转换
2015/07/29 PHP
PHP中上传文件打印错误错误类型分析
2019/04/14 PHP
PHP中通过getopt解析GNU C风格命令行选项
2019/11/18 PHP
获取网站跟路径的javascript代码(站点及虚拟目录)
2009/10/20 Javascript
10个实用的脚本代码工具
2010/05/04 Javascript
jQuery实现的类flash菜单效果代码
2010/05/17 Javascript
jquery 为a标签绑定click事件示例代码
2014/06/23 Javascript
Google官方支持的NodeJS访问API,提供后台登录授权
2014/07/29 NodeJs
HTML5实现留言和回复页面样式
2015/07/22 Javascript
ArtEditor富文本编辑器增加表单提交功能
2016/04/18 Javascript
微信小程序(三):网络请求
2017/01/13 Javascript
jQuery实现复选框的全选和反选
2017/02/02 Javascript
vue 属性拦截实现双向绑定的实例代码
2018/10/24 Javascript
javascript json字符串到json对象转义问题
2019/01/22 Javascript
VUE 实现复制内容到剪贴板的两种方法
2019/04/24 Javascript
node.js使用yargs处理命令行参数操作示例
2020/02/11 Javascript
[00:53]TI3正赛第三天 DK怒破A队不败金身 现场国旗飘扬热血激昂
2013/08/10 DOTA
[27:28]Ti4 冒泡赛第二天 iG vs NEWBEE 1
2014/07/15 DOTA
[28:05]完美世界DOTA2联赛循环赛Inki vs DeMonsTer 第一场 10月30日
2020/10/31 DOTA
Flask SQLAlchemy一对一,一对多的使用方法实践
2013/02/10 Python
Anaconda入门使用总结
2018/04/05 Python
Python-接口开发入门解析
2019/08/01 Python
Django框架中间件定义与使用方法案例分析
2019/11/28 Python
PyTorch中反卷积的用法详解
2019/12/30 Python
Django CSRF认证的几种解决方案
2020/03/03 Python
使用python接受tgam的脑波数据实例
2020/04/09 Python
使用pygame实现垃圾分类小游戏功能(已获校级二等奖)
2020/07/23 Python
荷兰游戏商店:Allyouplay
2019/03/16 全球购物
法律专业个人实习自我鉴定
2013/09/23 职场文书
工程专业求职自荐书范文
2014/02/08 职场文书
Go Gin实现文件上传下载的示例代码
2021/04/02 Golang