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 相关文章推荐
Html中JS脚本执行顺序简单举例说明
Jun 19 Javascript
多种方法判断Javascript对象是否存在
Sep 22 Javascript
各浏览器对document.getElementById等方法的实现差异解析
Dec 05 Javascript
Node.js 日志处理模块log4js
Aug 28 Javascript
Vue.js动态添加、删除选题的实例代码
Sep 30 Javascript
js原生之焦点图转换加定时器实例
Dec 12 Javascript
如何在vue中使用ts的示例代码
Feb 28 Javascript
vue.js购物车添加商品组件的方法
Sep 17 Javascript
JS实现放烟花效果
Mar 10 Javascript
Vue如何基于es6导入外部js文件
May 15 Javascript
js实现表单项的全选、反选及删除操作示例
Jun 05 Javascript
解决ant design vue中树形控件defaultExpandAll设置无效的问题
Oct 26 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
建立动态的WML站点(一)
2006/10/09 PHP
PHP 类相关函数的使用详解
2013/05/10 PHP
微信公众平台消息接口校验与消息接口响应实例
2014/12/23 PHP
PHP中的流(streams)浅析
2015/07/02 PHP
thinkPHP中U方法加密传递参数功能示例
2018/05/29 PHP
Javascript技术技巧大全(五)
2007/01/22 Javascript
JavaScript的递归之递归与循环示例介绍
2013/08/05 Javascript
javascript完美拖拽的实现方法
2013/09/29 Javascript
JavaScript中的prototype和constructor简明总结
2014/04/05 Javascript
Node.js中使用Log.io在浏览器中实时监控日志(等同tail -f命令)
2014/09/17 Javascript
JavaScript中Cookie操作实例
2015/01/09 Javascript
jQuery鼠标悬浮链接弹出跟随图片实例代码
2016/01/08 Javascript
jquery实现跳到底部,回到顶部效果的简单实例(类似锚)
2016/07/10 Javascript
卸载安装Node.js与npm过程详解
2016/08/15 Javascript
Vue.js 插件开发详解
2017/03/29 Javascript
实现微信小程序的wxml文件和wxss文件在webstrom的支持
2017/06/12 Javascript
react开发教程之React 组件之间的通信方式
2017/08/12 Javascript
JavaScript学习总结(一) ECMAScript、BOM、DOM(核心、浏览器对象模型与文档对象模型)
2018/01/07 Javascript
vue.js 实现图片本地预览 裁剪 压缩 上传功能
2018/03/01 Javascript
JavaScript的查询机制LHS和RHS解析
2019/08/16 Javascript
jquery实现点击弹出对话框
2020/02/08 jQuery
node使用async_hooks模块进行请求追踪
2021/01/28 Javascript
用Python进行行为驱动开发的入门教程
2015/04/23 Python
Python socket编程实例详解
2015/05/27 Python
Python模拟登录验证码(代码简单)
2016/02/06 Python
python自动查询12306余票并发送邮箱提醒脚本
2018/05/21 Python
Keras中的多分类损失函数用法categorical_crossentropy
2020/06/11 Python
python GUI计算器的实现
2020/10/09 Python
法国在线药房:DoctiPharma
2020/10/21 全球购物
天逸系统(武汉)有限公司Java笔试题
2015/12/29 面试题
办公室主任主任岗位责任制
2014/02/11 职场文书
离婚协议书怎样才有法律效力
2014/10/10 职场文书
离职感谢信
2015/01/21 职场文书
超级实用的公文标题大全!
2019/07/19 职场文书
pytorch fine-tune 预训练的模型操作
2021/06/03 Python
Hive导入csv文件示例
2022/06/25 数据库