详解vue中this.$emit()的返回值是什么


Posted in Javascript onApril 07, 2019

vue中的三大属性:属性 、事件、插槽,---事件

在事件中有

普通事件:@click/@input/@change/@xxx...事件;

修饰符事件:@input.trim,@click.stop,@submit.prevent...一般用于原生html元素;

答:在vue中this.$emit(); 返回值是this;

代码示例:

在子组件中:Event.vue:接收通过父组件传递过来的props:{name:String} 属性; 在input 标签中:

  1. value=name; 绑定name属性;
  2. 通过@change="handleChange" 普通事件;监听输入框输入值;

在script 标签中:

通过 this.$emit("Echange", e.target.value, val => { console.log(val); }); 通过回调,传递值到父组件;自定义事件“Echange”;

<template>
 <div>
name: {{ name || "--" }}
<br />
<input :value="name" @change="handleChange" />
<br />
<br />
<div @click="handleDivClick">
 <button @click="handleClick">重置成功</button> 
 <button @click.stop="handleClick">重置失败</button>
</div>
 </div>
</template>

<script>
export default {
 name: "EventDemo",
 props: {
name: String
 },
 methods: {
handleChange(e) {
 const res = this.$emit("Echange", e.target.value, val => {
console.log(val);
 });
 console.log(res, res === this);
},
handleDivClick() {
 this.$emit("change", "");
},
handleClick(e) {
 // 都会失败
 e.stopPropagation();
}
 }
};
</script>

在父组件中通过监听子组件事件,对回调做出响应;

父组件可以通过回调函数,callback()向子组件传递一个值;

<template>
 
  <Event :name="name" @Echange="handleEventChange" />
 
 </template>
 
 <script>
 import Event from "./Event";
 
 export default {
  components: {
 Event,
  
  },
  data: () => {
 return {
  name: "",
  
 };
  },
  mounted() {
 
  },
  methods: {
  
 handleEventChange(val, callback) {
  this.name = val;
  callback("hello");
  return "hello";
 }
  }
 };
 </script>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
[IE&amp;FireFox兼容]JS对select操作
Jan 07 Javascript
基于JQuery 选择器使用说明介绍
Apr 18 Javascript
js中的异常处理try...catch使用介绍
Sep 21 Javascript
JQuery性能优化的几点建议
May 14 Javascript
Javascript优化技巧之短路表达式详细介绍
Mar 27 Javascript
javascript省市级联功能实现方法实例详解
Oct 20 Javascript
跟我学习javascript的prototype原型和原型链
Nov 18 Javascript
JavaScript继承学习笔记【新手必看】
May 10 Javascript
webpack中引用jquery的简单实现
Jun 08 Javascript
vue-router:嵌套路由的使用方法
Feb 21 Javascript
AngularJS ui-router (嵌套路由)实例
Mar 10 Javascript
Webpack执行命令参数详解
Jun 17 Javascript
浅谈javascript中的prototype和__proto__的理解
Apr 07 #Javascript
javascrit中undefined和null的区别详解
Apr 07 #Javascript
详解服务端预渲染之Nuxt(介绍篇)
Apr 07 #Javascript
vue设计一个倒计时秒杀的组件详解
Apr 06 #Javascript
js字符串处理之绝妙的代码
Apr 05 #Javascript
微信小程序自定义导航栏实例代码
Apr 05 #Javascript
Node.js事件的正确使用方法
Apr 05 #Javascript
You might like
解决了Ajax、MySQL 和 Zend Framework 的乱码问题
2009/03/03 PHP
PHP动态分页函数,PHP开发分页必备啦
2011/11/07 PHP
PHP中mb_convert_encoding与iconv函数的深入解析
2013/06/21 PHP
javascript+php实现根据用户时区显示当地时间的方法
2015/03/11 PHP
php数字运算验证码的实现代码
2015/07/30 PHP
PHP实现打包下载文件的方法示例
2017/10/07 PHP
PHP实现图的邻接矩阵表示及几种简单遍历算法分析
2017/11/24 PHP
实例分析10个PHP常见安全问题
2019/07/09 PHP
JavaScript Prototype对象
2009/01/07 Javascript
jquery ajax,ashx,json的用法总结
2014/02/12 Javascript
浅谈jquery中delegate()与live()
2015/06/22 Javascript
JS实现弹出浮动窗口(支持鼠标拖动和关闭)实例详解
2015/08/06 Javascript
javascript的BOM
2016/05/03 Javascript
jquery根据一个值来选中select下的option实例代码
2016/08/29 Javascript
jQuery插件之validation插件
2017/03/29 jQuery
node.js中cluster的使用教程
2017/06/09 Javascript
使用Bootrap和Vue实现仿百度搜索功能
2017/10/26 Javascript
利用vue组件自定义v-model实现一个Tab组件方法示例
2017/12/06 Javascript
JS实现调用本地摄像头功能示例
2018/05/18 Javascript
vue通过点击事件读取音频文件的方法
2018/05/30 Javascript
详解如何在Vue里建立长按指令
2018/08/20 Javascript
JS实现数据动态渲染的竖向步骤条
2020/06/24 Javascript
原生js实现自定义消息提示框
2020/11/19 Javascript
[00:12]2018DOTA2亚洲邀请赛 sylar表现SOLO技艺
2018/04/06 DOTA
Python中用altzone()方法处理时区的教程
2015/05/22 Python
Python实现股市信息下载的方法
2015/06/15 Python
Python中pygal绘制雷达图代码分享
2017/12/07 Python
Django权限机制实现代码详解
2018/02/05 Python
详解Python 协程的详细用法使用和例子
2018/06/15 Python
canvas粒子动画背景的实现示例
2018/09/03 HTML / CSS
Java语言程序设计测试题选择题部分
2014/04/03 面试题
师范教师毕业鉴定
2014/01/13 职场文书
党校培训自我鉴定
2014/02/01 职场文书
2015年汽车销售经理工作总结
2015/04/27 职场文书
Python实战之疫苗研发情况可视化
2021/05/18 Python
python编程学习使用管道Pipe编写优化代码
2021/11/20 Python