对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 相关文章推荐
实现超用户体验 table排序javascript实现代码
Jun 22 Javascript
让 JavaScript 轻松支持函数重载 (Part 2 - 实现)
Aug 04 Javascript
JavaScript 页面坐标相关知识整理
Jan 09 Javascript
(jQuery,mootools,dojo)使用适合自己的编程别名命名
Sep 14 Javascript
brook javascript框架介绍
Oct 10 Javascript
jQuery中trigger()方法用法实例
Jan 19 Javascript
jQuery实现渐变弹出层和弹出菜单的方法
Feb 20 Javascript
javascript深拷贝(deepClone)详解
Aug 24 Javascript
基于Vue2.0+ElementUI实现表格翻页功能
Oct 23 Javascript
实例详解vue中的$root和$parent
Apr 29 Javascript
vue.js实现只能输入数字的输入框
Oct 19 Javascript
小程序点餐界面添加购物车左右摆动动画
Sep 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桌面中心(一) 创建数据库
2007/03/11 PHP
PHP中的类型提示(type hinting)功能介绍
2015/07/01 PHP
thinkphp表单上传文件并将文件路径保存到数据库中
2016/07/28 PHP
a标签的css样式四个状态
2021/03/09 HTML / CSS
js textarea自动增高并隐藏滚动条
2009/12/16 Javascript
javascript 闭包
2011/09/15 Javascript
在JavaScript中typeof的用途介绍
2013/04/11 Javascript
js算法中的排序、数组去重详细概述
2013/10/14 Javascript
jquery select 设置默认选中的示例代码
2014/02/07 Javascript
ExtJS中设置下拉列表框不可编辑的方法
2014/05/07 Javascript
jQuery中clearQueue()方法用法实例
2014/12/29 Javascript
js实现选中页面文字将其分享到新浪微博
2015/11/05 Javascript
jQuery实现div拖拽效果实例分析
2016/02/20 Javascript
jQuery访问浏览器本地存储cookie、localStorage和sessionStorage的基本用法
2017/10/20 jQuery
webpack将js打包后的map文件详解
2018/02/22 Javascript
微信小程序开发之左右分栏效果的实例代码
2019/05/20 Javascript
win7安装python生成随机数代码分享
2013/12/27 Python
Python+django实现文件上传
2016/01/17 Python
Python正则表达式经典入门教程
2017/05/22 Python
Python实现七彩蟒蛇绘制实例代码
2018/01/16 Python
Python计算一个给定时间点前一个月和后一个月第一天的方法
2018/05/29 Python
解决项目pycharm能运行,在终端却无法运行的问题
2019/01/19 Python
详解Python下载图片并保存本地的两种方式
2019/05/15 Python
python pandas写入excel文件的方法示例
2019/06/25 Python
python flask框架实现重定向功能示例
2019/07/02 Python
Django 缓存配置Redis使用详解
2019/07/23 Python
python从ftp获取文件并下载到本地
2020/12/05 Python
HTML5实现预览本地图片
2016/02/17 HTML / CSS
大整数数相乘的问题
2012/07/22 面试题
SQL Server 2000数据库的文件有哪些,分别进行描述
2013/03/30 面试题
什么是跨站脚本攻击
2014/12/11 面试题
WSDL的操作类型主要有几种
2013/07/19 面试题
幼儿教师自我鉴定
2013/11/02 职场文书
小学教师节活动方案
2014/01/31 职场文书
绩效工资实施方案
2014/03/15 职场文书
写自招自荐信的绝招!
2019/04/19 职场文书