详解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 相关文章推荐
JS控制文本框textarea输入字数限制的方法
Jun 17 Javascript
JavaScript实现在数组中查找不同顺序排列的字符串
Sep 26 Javascript
JavaScript数组随机排列实现随机洗牌功能
Mar 19 Javascript
javascript bom是什么及bom和dom的区别
Nov 26 Javascript
理解javascript中DOM事件
Dec 25 Javascript
百度地图给map添加右键菜单(判断是否为marker)
Mar 04 Javascript
浅析JavaScript中作用域和作用域链
Dec 06 Javascript
详解vue项目构建与实战
Jun 27 Javascript
JS实现网页抢购功能(触发,终止脚本)
Nov 27 Javascript
微信小程序项目实践之九宫格实现及item跳转功能
Jul 19 Javascript
详解webpack打包后如何调试的方法步骤
Nov 07 Javascript
解决vue2 在mounted函数无法获取prop中的变量问题
Nov 15 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
PHP 验证码不显示只有一个小红叉的解决方法
2013/09/30 PHP
获取任意Html元素与body之间的偏移距离 offsetTop、offsetLeft (For:IE5+ FF1 )[
2006/12/22 Javascript
javascript+dom树型菜单类,希望朋友们一起进步
2007/05/03 Javascript
Javascript入门学习资料收集整理篇
2008/07/06 Javascript
JavaScript中各种编码解码函数的区别和注意事项
2010/08/19 Javascript
jquery trim() 功能源代码
2011/02/14 Javascript
在网站上应该用的30个jQuery插件整理
2011/11/03 Javascript
同一页面多个商品倒计时JS 基于面向对象的javascript
2012/02/16 Javascript
Javascript执行效率全面总结
2013/11/04 Javascript
解析URI与URL之间的区别与联系
2013/11/22 Javascript
js浏览器本地存储store.js介绍及应用
2014/05/13 Javascript
详谈javascript中的cookie
2015/06/03 Javascript
Javascript控制div属性动态变化实例分析
2015/10/08 Javascript
JavaScript获取当前cpu使用率的方法
2015/12/15 Javascript
Vue中使用vux的配置详解
2017/05/05 Javascript
Angular4.x Event (DOM事件和自定义事件详解)
2018/10/09 Javascript
微信小程序实现图片选择并预览功能
2019/07/25 Javascript
express框架下使用session的方法
2019/07/31 Javascript
非常实用的jQuery代码段集锦【检测浏览器、滚动、复制、淡入淡出等】
2019/08/08 jQuery
JS实现页面跳转与刷新的方法汇总
2019/08/30 Javascript
谈谈IntersectionObserver懒加载的具体使用
2019/10/15 Javascript
Vue自动构建发布脚本的方法示例
2020/07/24 Javascript
解析Python中的异常处理
2015/04/28 Python
Python导出数据到Excel可读取的CSV文件的方法
2015/05/12 Python
更改Ubuntu默认python版本的两种方法python-&gt; Anaconda
2016/12/18 Python
django传值给模板, 再用JS接收并进行操作的实例
2018/05/28 Python
详解pandas删除缺失数据(pd.dropna()方法)
2019/06/25 Python
使用apiDoc实现python接口文档编写
2019/11/19 Python
多视角3D逼真HTML5水波动画
2016/03/03 HTML / CSS
玖熙女鞋美国官网:Nine West
2016/10/06 全球购物
杰夫·班克斯男士服装网上商店:Jeff Banks
2019/10/24 全球购物
剪彩仪式主持词
2014/03/19 职场文书
教师个人自我评价范文
2014/04/13 职场文书
小学作文评语大全
2014/04/21 职场文书
应急管理工作总结2015
2015/05/04 职场文书
三八节祝酒词
2015/08/11 职场文书