vue子组件使用自定义事件向父组件传递数据


Posted in Javascript onMay 27, 2017

使用v-on绑定自定义事件可以让子组件向父组件传递数据,用到了this.$emit(‘自定义的事件名称',传递给父组件的数据)

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Title</title>
 <script src="../js/vue.js"></script>
</head>
<body>
<div id="app">
<parent-component></parent-component>
</div>
<template id="parent-component">
<div>
 <p>总数是{{total}}</p>
 <child-component @increment="incrementTotal"></child-component>
 <!--@increment是子组件this.$emit('increment'自定义的事件用来告诉父组件自己干了什么事
 然后会触发父子间incrementTotal的方法来更新父组件的内容)-->
</div>
</template>
<template id="child-component">
 <button @click="increment()">{{mycounter}}</button>
</template>
<script>
 var child=Vue.extend({
  template:"#child-component",
  data:function () {
   return {
    mycounter:0
   }
  },
  methods:{
   increment:function(){
    this.mycounter=10;
    this.$emit("increment",this.mycounter);//把this.mycounter传递给父组件
   }
  }
 })
 var parent=Vue.extend({
  data:function () {
   return {
    total:0
   }
  },
  methods:{
   incrementTotal:function(newValue){
    this.total+=newValue;
   }
  },
  template:"#parent-component",
  components:{
   'child-component':child
  }
 })
 var vm=new Vue({
  el:"#app",
  components:{
   'parent-component':parent
  }
 })
</script>
</body>
</html>

@increment是子组件this.$emit('increment'自定义的事件,newValue)用来告诉父组件自己干了什么事

同时还可以传递新的数据给父组件

然后会触发父子间incrementTotal的方法来更新父组件的内容)。

这里需要注意几个点:

1.

vue子组件使用自定义事件向父组件传递数据

图中红色圈中的部分是对应的,子组件在自己的methods方法里面写自己的事件实现,然后再父组件里面写字组件时给子组件绑定上methods方法里面的

事件名称,要一一对应

vue子组件使用自定义事件向父组件传递数据

这里自定义事件里面的要写父组件的方法名,父组件里面定义该方法。

vue子组件使用自定义事件向父组件传递数据

父组件里面的方法可以接收子组件this.$emit('increment',this.mycounter);传递过来的数值:this.mycounter,

到父组件的方法里面就是newValue参数,这样就实现了子组件向父组件传递数据

以上所述是小编给大家介绍的vue子组件使用自定义事件向父组件传递数据,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
一些相见恨晚的 JavaScript 技巧
Apr 25 Javascript
javascript 从if else 到 switch case 再到抽象
Jul 17 Javascript
jQuery动画特效实例教程
Aug 29 Javascript
超棒的响应式布局jQuery插件Freetile.js
Nov 17 Javascript
Jquery注册事件实现方法
May 18 Javascript
跟我学习javascript的全局变量
Nov 16 Javascript
JavaScript中rem布局在react中的应用
Dec 09 Javascript
基于jQuery的网页影音播放器jPlayer的基本使用教程
Mar 08 Javascript
js+css实现select的美化效果
Mar 24 Javascript
JS实现移动端按首字母检索城市列表附源码下载
Jul 05 Javascript
JS+canvas动态绘制饼图的方法示例
Sep 12 Javascript
如何封装了一个vue移动端下拉加载下一页数据的组件
Jan 06 Javascript
javascript回调函数的概念理解与用法分析
May 27 #Javascript
原生JavaScript实现的简单省市县三级联动功能示例
May 27 #Javascript
原生JavaScript实现精美的淘宝轮播图效果示例【附demo源码下载】
May 27 #Javascript
详细讲解vue2+vuex+axios
May 27 #Javascript
AngularJS获取json数据的方法详解
May 27 #Javascript
vue中用H5实现文件上传的方法实例代码
May 27 #Javascript
详解vue2.0脚手架的webpack 配置文件分析
May 27 #Javascript
You might like
php+mysql实现无限级分类 | 树型显示分类关系
2006/11/19 PHP
asp和php下textarea提交大量数据发生丢失的解决方法
2008/01/20 PHP
PHP双向链表定义与用法示例
2018/01/31 PHP
php设计模式之抽象工厂模式分析【星际争霸游戏案例】
2020/01/23 PHP
5 cool javascript apps
2007/03/24 Javascript
Iframe 自适应高度并实时监控高度变化的js代码
2009/10/30 Javascript
XHTML下,JS浮动代码失效的问题
2009/11/12 Javascript
jquery 分页控件实现代码
2009/11/30 Javascript
jquery ready()的几种实现方法小结
2010/06/18 Javascript
15条JavaScript最佳实践小结
2013/08/09 Javascript
5个可以帮你理解JavaScript核心闭包和作用域的小例子
2014/10/08 Javascript
js阻止事件追加的具体实现
2014/10/15 Javascript
jQuery实现鼠标滑过Div层背景变颜色的方法
2015/02/17 Javascript
JS实现图片产生波纹一样flash效果的方法
2015/02/27 Javascript
谈谈JavaScript自定义回调函数
2015/10/18 Javascript
JavaScript获取当前运行脚本文件所在目录的方法
2016/02/03 Javascript
微信小程序 五星评分(包括半颗星评分)实例代码
2016/12/14 Javascript
bootstrap table实例详解
2017/01/06 Javascript
Vue2.0组件间数据传递示例
2017/03/07 Javascript
js异步编程小技巧详解
2017/08/14 Javascript
js tab栏切换代码实例解析
2019/09/03 Javascript
解决Vue中的生命周期beforeDestory不触发的问题
2020/07/21 Javascript
原生js滑动轮播封装
2020/07/31 Javascript
Python中用Decorator来简化元编程的教程
2015/04/13 Python
Python实现数据库编程方法详解
2015/06/09 Python
简单了解Python中的几种函数
2017/11/03 Python
python进行文件对比的方法
2018/12/24 Python
Python判断字符串是否为合法标示符操作
2020/09/03 Python
用HTML5制作数字时钟的教程
2015/05/11 HTML / CSS
html5使用canvas实现弹幕功能示例
2017/09/11 HTML / CSS
函授毕业自我鉴定
2013/12/19 职场文书
大学生实习感言
2014/01/16 职场文书
毕业生大学生活自我总结
2014/01/31 职场文书
乡镇八一建军节活动方案
2014/08/24 职场文书
幼儿园端午节活动方案
2014/08/25 职场文书
css display table 自适应高度、宽度问题的解决
2021/05/07 HTML / CSS