对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函数冲突的解决方法
May 17 Javascript
基于Jquery实现表格动态分页实现代码
Jun 21 Javascript
用js提交表单解决一个页面有多个提交按钮的问题
Sep 01 Javascript
理解javascript中的回调函数(callback)
Sep 02 Javascript
JavaScript实现对下拉列表值进行排序的方法
Jul 15 Javascript
jQuery+PHP+MySQL二级联动下拉菜单实例讲解
Oct 27 Javascript
仅30行代码实现Javascript中的MVC
Feb 15 Javascript
浅谈JS之tagNaem和nodeName
Sep 13 Javascript
在Vue组件中使用 TypeScript的方法
Feb 28 Javascript
ElementUI Tag组件实现多标签生成的方法示例
Jul 08 Javascript
vue项目中在可编辑div光标位置插入内容的实现代码
Jan 07 Javascript
vue实现可以快进后退的跑马灯组件
Apr 08 Vue.js
基于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 魔术方法使用说明
2009/10/20 PHP
php异常:Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE  eval()'d code error
2011/05/19 PHP
php随机取mysql记录方法小结
2014/12/27 PHP
PHP获取redis里不存在的6位随机数应用示例【设置24小时过时】
2017/06/07 PHP
番茄的表单验证类代码修改版
2008/07/18 Javascript
单击浏览器右上角的X关闭窗口弹出提示的小例子
2013/06/12 Javascript
document节点对象的获取方式示例介绍
2013/12/24 Javascript
JS实现点击链接取消跳转效果的方法
2014/01/24 Javascript
轻松创建nodejs服务器(2):nodejs服务器的构成分析
2014/12/18 NodeJs
关于javascript中dataset的问题小结
2015/11/16 Javascript
轻松实现javascript图片轮播特效
2016/01/13 Javascript
微信小程序实现横向增长表格的方法
2018/07/24 Javascript
jQuery实现点击旋转,再点击恢复初始状态动画效果示例
2018/12/11 jQuery
Vue 中文本内容超出规定行数后展开收起的处理的实现方法
2019/04/28 Javascript
vue表单验证之禁止input输入框输入空格
2020/12/03 Vue.js
python定时执行指定函数的方法
2015/05/27 Python
Python中.py文件打包成exe可执行文件详解
2017/03/22 Python
Python之变量类型和if判断方式
2020/05/05 Python
Python如何读写二进制数组数据
2020/08/01 Python
python实现马丁策略的实例详解
2021/01/15 Python
利用CSS3的transform做的动态时钟效果
2011/09/21 HTML / CSS
德国狗狗用品在线商店:Schecker
2017/03/17 全球购物
英国皇室御用百货:福南梅森(Fortnum & Mason)
2017/12/03 全球购物
为什么要使用servlet
2016/01/17 面试题
应届生保险求职信
2013/11/11 职场文书
电台实习生求职信
2014/02/25 职场文书
会计求职信范文
2014/05/24 职场文书
公司户外活动总结
2014/07/04 职场文书
党员志愿者活动方案
2014/08/28 职场文书
离退休人员聘用协议书
2014/11/24 职场文书
教师调动申请报告
2015/05/18 职场文书
房屋维修申请报告
2015/05/18 职场文书
2016个人先进事迹材料范文
2016/03/01 职场文书
MySQL池化框架学习接池自定义
2022/07/23 MySQL
python 使用pandas读取csv文件的方法
2022/12/24 Python