对vue.js中this.$emit的深入理解


Posted in Javascript onFebruary 23, 2018

对于vue.js中的this.emit的理解:this.emit(‘increment1',”这个位子是可以加参数的”);其实它的作用就是触发自定义函数。

看例子:

<!DOCTYPE html>
<html>
<head>
 <meta charset="UTF-8">
 <title></title>
</head>
<script src="vue.js"></script>
<body>
<div id="counter-event-example">
 <p>{{ total }}</p>
 <button-counter v-on:increment1="incrementTotal1"></button-counter>
 <button-counter v-on:increment2="incrementTotal2"></button-counter>
</div>
</body>
<script>
 Vue.component('button-counter', {
 template: '<button v-on:click="increment">{{ counter }}</button>',
 data: function () {
  return {
  counter: 0
  }
 },
 methods: {
  increment: function () {
  this.counter += 1;
  this.$emit('increment1',"这个位子是可以加参数的");//触发自定义increment1的函数。此处的increment1函数就是 incrementTotal1函数。
//  this.$emit('increment2'); //此时不会触发自定义increment2的函数。
  }
 }
 });
 new Vue({
 el: '#counter-event-example',
 data: {
  total: 0
 },
 methods: {
  incrementTotal1: function (e) {
  this.total += 1;
  console.log(e);
  },
  incrementTotal2: function () {
  this.total += 1;
  }
 }
 })
</script>
</html>

对上面的例子进行进一步的解析:

1、首先看 自定组件button-counter ,给其绑定了方法 :increment;

2、点击button时会执行函数 increment,increment中有 this.$emit(‘increment1',”这个位子是可以加参数的”);

3、当increment执行时,就会触发自定函数increment1,也就是incrementTotal1函数;

4、而increment执行时没有触发自定义函数increment2,所以点击第二个按钮不执行incrementTotal2的函数。

以上这篇对vue.js中this.$emit的深入理解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js对数字的格式化使用说明
Jan 12 Javascript
javascript实现日历控件(年月日关闭按钮)
Dec 12 Javascript
js 编码转换 gb2312 和 utf8 互转的2种方法
Aug 07 Javascript
js判断undefined类型,undefined,null, 的区别详细解析
Dec 16 Javascript
JavaScript中switch判断容易犯错的一个细节
Aug 27 Javascript
js实现圆盘记速表
Aug 03 Javascript
webix+springmvc session超时跳转登录页面
Oct 30 Javascript
iscroll动态加载数据完美解决方法
Jul 18 Javascript
vue移动端弹框组件的实例
Sep 25 Javascript
vue axios 简单封装以及思考
Oct 09 Javascript
es6中reduce的基本使用方法
Sep 10 Javascript
原生JS实现九宫格抽奖
Sep 13 Javascript
基于vue.js中事件修饰符.self的用法(详解)
Feb 23 #Javascript
vue.js2.0点击获取自己的属性和jquery方法
Feb 23 #jQuery
vue中动态绑定表单元素的属性方法
Feb 23 #Javascript
Vue之Vue.set动态新增对象属性方法
Feb 23 #Javascript
vue2.0在没有dev-server.js下的本地数据配置方法
Feb 23 #Javascript
Vue实现带进度条的文件拖动上传功能
Feb 23 #Javascript
详解vue2.0 不同屏幕适配及px与rem转换问题
Feb 23 #Javascript
You might like
php基于openssl的rsa加密解密示例
2016/07/11 PHP
Laravel 5.5基于内置的Auth模块实现前后台登陆详解
2017/12/21 PHP
php实现网页上一页下一页翻页过程详解
2019/06/28 PHP
PHP创建XML的方法示例【基于DOMDocument类及SimpleXMLElement类】
2019/09/10 PHP
Jquery Ajax学习实例5 向WebService发出请求,返回泛型集合数据的异步调用
2010/03/17 Javascript
jQuery timers计时器简单应用说明
2010/10/28 Javascript
Javascript将string类型转换int类型
2010/12/09 Javascript
为Javascript中的String对象添加去除左右空格的方法(示例代码)
2013/11/30 Javascript
jquery将一个表单序列化为一个对象的方法
2013/12/02 Javascript
解决用jquery load加载页面到div时,不执行页面js的问题
2014/02/22 Javascript
jQuery中hasClass()方法用法实例
2015/01/06 Javascript
JS绘制生成花瓣效果的方法
2015/08/05 Javascript
bootstrap输入框组件使用方法详解
2017/01/19 Javascript
js实现4个方向滚动的球
2017/03/06 Javascript
浅谈angular2 组件的生命周期钩子
2017/08/12 Javascript
dropload.js插件下拉刷新和上拉加载使用详解
2017/10/20 Javascript
elementUI select组件value值注意事项详解
2019/05/29 Javascript
jquery实现上传文件进度条
2020/03/26 jQuery
Vue与React的区别和优势对比
2020/12/18 Vue.js
Ubuntu安装Jupyter Notebook教程
2017/10/18 Python
基于Python实现迪杰斯特拉和弗洛伊德算法
2020/05/27 Python
pandas数据筛选和csv操作的实现方法
2019/07/02 Python
Python 3 实现定义跨模块的全局变量和使用教程
2019/07/07 Python
python 使用多线程创建一个Buffer缓存器的实现思路
2020/07/02 Python
太阳镜仓库,售价20美元或更少:Sunglass Warehouse
2016/09/28 全球购物
NFL墨西哥官方商店:Tienda NFL
2017/11/28 全球购物
英国家用电器折扣网站:Electrical Discount UK
2018/09/17 全球购物
自1926年以来就为冰岛保持温暖:66°North
2020/11/27 全球购物
中专生毕业自我鉴定
2013/11/01 职场文书
广告设计专业自荐信范文
2013/11/14 职场文书
家长会欢迎标语
2014/06/24 职场文书
法定代表人身份证明书
2014/09/10 职场文书
2014领导干部四风问题查摆思想汇报
2014/09/13 职场文书
基层党员群众路线整改措施及努力方向
2014/10/28 职场文书
给医院的感谢信
2015/01/21 职场文书
小学五年级班主任工作经验交流材料
2015/11/02 职场文书