对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 相关文章推荐
模拟jQuery中的ready方法及实现按需加载css,js实例代码
Sep 27 Javascript
js判断页面中是否有指定控件的简单实例
Mar 04 Javascript
基于javascript、ajax、memcache和PHP实现的简易在线聊天室
Feb 03 Javascript
javascript原型模式用法实例详解
Jun 04 Javascript
JavaScript实现字符串与日期的互相转换及日期的格式化
Mar 07 Javascript
springMVC结合AjaxForm上传文件
Jul 12 Javascript
jQuery无缝轮播图代码
Dec 22 Javascript
全面总结Javascript对数组对象的各种操作
Jan 22 Javascript
新手快速上手webpack4打包工具的使用详解
Jan 28 Javascript
深入理解javascript prototype的相关知识
Sep 19 Javascript
Vue中的nextTick作用和几个简单的使用场景
Jan 25 Vue.js
利用js实现简单开关灯代码
Nov 23 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小技巧之JS和CSS优化工具Minify的使用方法
2014/05/19 PHP
php版交通银行网银支付接口开发入门教程
2016/09/26 PHP
PHP会话操作之cookie用法分析
2016/09/28 PHP
JavaScript 异步调用框架 (Part 1 - 问题 &amp; 场景)
2009/08/03 Javascript
JS跨域总结
2012/08/30 Javascript
Javascript冒泡排序算法详解
2014/12/03 Javascript
AngularJS中实现显示或隐藏动画效果的方式总结
2015/12/31 Javascript
BootStrap glyphicons 字体图标实现方法
2016/05/01 Javascript
angular.js指令中transclude选项及ng-transclude指令详解
2017/05/24 Javascript
JavaScript队列函数和异步执行详解
2017/06/19 Javascript
JavaScript阻止表单提交方法(附代码)
2017/08/15 Javascript
NodeJS模块与ES6模块系统语法及注意点详解
2019/01/04 NodeJs
详解原生JS回到顶部
2019/03/25 Javascript
Javascript 对象(object)合并操作实例分析
2019/07/30 Javascript
node.js中process进程的概念和child_process子进程模块的使用方法示例
2020/02/11 Javascript
[00:23]DOTA2群星共贺开放测试 25日无码时代来袭
2013/09/23 DOTA
[57:55]EG vs Fnatic 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
详解python之多进程和进程池(Processing库)
2017/06/09 Python
python 划分数据集为训练集和测试集的方法
2018/12/11 Python
python实现逐个读取txt字符并修改
2018/12/24 Python
python实现动态数组的示例代码
2019/07/15 Python
Python Pandas 如何shuffle(打乱)数据
2019/07/30 Python
Django+Uwsgi+Nginx如何实现生产环境部署
2020/07/31 Python
基于python实现图片转字符画代码实例
2020/09/04 Python
基于django和dropzone.js实现上传文件
2020/11/24 Python
html5定位获取当前位置并在百度地图上显示
2014/08/22 HTML / CSS
Gap中国官网:美式休闲风服饰
2017/02/05 全球购物
美国运动鞋和运动服零售商:Footaction
2017/04/07 全球购物
Asics日本官网:鬼冢八喜郎创立的跑鞋运动品牌
2017/10/18 全球购物
Solaris操作系统的线程机制
2012/12/23 面试题
机械专业毕业生推荐信范文
2013/11/25 职场文书
经理秘书求职自荐信范文
2014/03/23 职场文书
司法局火灾防控方案
2014/06/05 职场文书
多媒体编辑专业毕业生求职信
2014/06/13 职场文书
纪念九一八事变演讲稿:牢记历史,捍卫主权
2014/09/14 职场文书
自主招生自荐信格式
2015/03/04 职场文书