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 相关文章推荐
Firefox 无法获取cssRules 的解决办法
Oct 11 Javascript
js 调用本地exe的例子(支持IE内核的浏览器)
Dec 26 Javascript
JavaScript截取字符串的Slice、Substring、Substr函数详解和比较
Mar 20 Javascript
JavaScript编程中容易出BUG的几点小知识
Jan 31 Javascript
js实现模拟银行卡账号输入显示效果
Nov 18 Javascript
Angular指令封装jQuery日期时间插件datetimepicker实现双向绑定示例
Jan 22 Javascript
详解javascript appendChild()的完整功能
Aug 18 Javascript
详解使用jest对vue项目进行单元测试
Sep 07 Javascript
express框架中使用jwt实现验证的方法
Aug 25 Javascript
Vue的生命周期操作示例
Sep 17 Javascript
axios如何取消重复无用的请求详解
Dec 15 Javascript
javascript实现前端成语点击验证优化
Jun 24 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 adodb分页实现代码
2009/03/19 PHP
php 数据库字段复用的基本原理与示例
2011/07/22 PHP
php实现基于openssl的加密解密方法
2016/09/30 PHP
php 文件下载 出现下载文件内容乱码损坏的解决方法(推荐)
2016/11/16 PHP
jquery attr 设定src中含有&amp;(宏)符号问题的解决方法
2011/07/26 Javascript
javascript学习笔记(二) js一些基本概念
2012/06/18 Javascript
基于jQuery实现的菜单切换效果
2015/10/16 Javascript
JavaScript关于提高网站性能的几点建议(一)
2016/07/24 Javascript
js实现HashTable(哈希表)的实例分析
2016/11/21 Javascript
基于javascript的Form表单验证
2016/12/29 Javascript
vue+webpack实现异步加载三种用法示例详解
2018/04/24 Javascript
如何换个角度使用VUE过滤器详解
2019/09/11 Javascript
如何用vue-cli3脚手架搭建一个基于ts的基础脚手架的方法
2019/12/12 Javascript
原生JS实现记忆翻牌游戏
2020/07/31 Javascript
vue中defineProperty和Proxy的区别详解
2020/11/30 Vue.js
Python入门篇之文件
2014/10/20 Python
Python基于numpy灵活定义神经网络结构的方法
2017/08/19 Python
python使用Pycharm创建一个Django项目
2018/03/05 Python
解决Mac安装scrapy失败的问题
2018/06/13 Python
Python中的Django基本命令实例详解
2018/07/15 Python
python 实现创建文件夹和创建日志文件的方法
2019/07/07 Python
Python实用库 PrettyTable 学习笔记
2019/08/06 Python
wxPython实现绘图小例子
2019/11/19 Python
Python通过2种方法输出带颜色字体
2020/03/02 Python
Python基于network模块制作电影人物关系图
2020/06/19 Python
pycharm中选中一个单词替换所有重复单词的实现方法
2020/11/17 Python
Ted Baker英国官网:男士和女士服装及配件
2017/03/13 全球购物
Vans荷兰官方网站:美国南加州的原创极限运动潮牌
2018/01/23 全球购物
4s店机修工岗位职责
2013/12/20 职场文书
经营理念标语
2014/06/21 职场文书
班级出游活动计划书
2014/08/15 职场文书
群众路线教育党员自我剖析材料
2014/10/06 职场文书
六查六看自查报告
2014/10/14 职场文书
焦裕禄观后感
2015/06/03 职场文书
Java设计模式之享元模式示例详解
2022/03/03 Java/Android
JavaScript模拟实现网易云轮播效果
2022/04/04 Javascript