详解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 相关文章推荐
javascript读取RSS数据
Jan 20 Javascript
用js实现手把手教你月入万刀(转贴)
Nov 07 Javascript
jquery中邮箱地址 URL网站地址正则验证实例代码
Sep 15 Javascript
JS对字符串编码的几种方式使用指南
May 14 Javascript
JQuery 在文档中查找指定name的元素并移除的实现方法
May 19 Javascript
jQuery实现导航滚动到指定内容效果完整实例【附demo源码下载】
Sep 20 Javascript
深入对Vue.js $watch方法的理解
Mar 20 Javascript
JavaScript hasOwnProperty() 函数实例详解
Aug 04 Javascript
JavaScript实现图片本地预览功能【不用上传至服务器】
Sep 20 Javascript
9102了,你还不会移动端真机调试吗
Mar 25 Javascript
微信头像地址失效踩坑记附带解决方案
Sep 23 Javascript
VUE中setTimeout和setInterval自动销毁案例
Sep 07 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
jquery判断单个复选框是否被选中的代码
2009/09/03 Javascript
jQuery对象和DOM对象的相互转化实现代码
2010/03/02 Javascript
网站页面自动跳转实现方法PHP、JSP(上)
2010/08/01 Javascript
浏览器打开层自动缓慢展开收缩实例代码
2013/07/04 Javascript
8个实用的jQuery技巧
2014/03/04 Javascript
jQuery基于cookie实现的购物车实例分析
2015/12/24 Javascript
JS结合bootstrap实现基本的增删改查功能
2016/07/22 Javascript
Web打印解决方案之普通报表打印功能
2016/08/29 Javascript
vue router动态路由下让每个子路由都是独立组件的解决方案
2018/04/24 Javascript
快速解决Vue项目在IE浏览器中显示空白的问题
2018/09/04 Javascript
layer弹出层自定义提交取消按钮的例子
2019/09/10 Javascript
借助云开发实现小程序短信验证码的发送
2020/01/06 Javascript
微信小程序如何实现点击图片放大功能
2020/01/21 Javascript
viewer.js实现图片预览功能
2020/06/24 Javascript
Vue使用screenfull实现全屏效果
2020/09/17 Javascript
Javascript数组及类数组相关原理详解
2020/10/29 Javascript
[02:41]DOTA2亚洲邀请赛小组赛第三日 赛事回顾
2015/02/01 DOTA
[04:20]DOTA2-DPC中国联赛 正赛 VG vs LBZS 选手采访 1月19日
2021/03/11 DOTA
浅谈python正则的常用方法 覆盖范围70%以上
2018/03/14 Python
python模拟表单提交登录图书馆
2018/04/27 Python
Python检测网络延迟的代码
2018/05/15 Python
Python3中关于cookie的创建与保存
2018/10/21 Python
Python高级特性与几种函数的讲解
2019/03/08 Python
python实现简单的tcp 文件下载
2020/09/16 Python
pandas使用函数批量处理数据(map、apply、applymap)
2020/11/27 Python
基于CSS3的CSS 多栏(Multi-column)实现瀑布流源码分享
2014/06/11 HTML / CSS
使用HTML5 IndexDB存储图像和文件的示例
2018/11/05 HTML / CSS
采用专利算法搜索最廉价的机票:CheapAir
2016/09/10 全球购物
Carrs Silver官网:英国著名的银器品牌
2020/08/29 全球购物
如何选择使用结构还是类
2014/05/30 面试题
计算机本科生自荐信
2013/10/15 职场文书
小学生暑假感言
2014/02/06 职场文书
多媒体专业自我鉴定
2014/02/28 职场文书
《真想变成大大的荷叶》教学反思
2014/04/14 职场文书
党员先锋岗事迹材料
2014/05/08 职场文书
医学专业毕业生推荐信
2014/07/12 职场文书