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 函数式编程的原理
Oct 16 Javascript
js遍历、动态的添加数据的小例子
Jun 22 Javascript
AngularJs 指令详解及示例代码
Sep 01 Javascript
xmlplus组件设计系列之列表(4)
Apr 26 Javascript
JS设计模式之策略模式概念与用法分析
Feb 05 Javascript
解决Angular.js中使用Swiper插件不能滑动的问题
Feb 26 Javascript
解决Vue-cli npm run build生产环境打包,本地不能打开的问题
Sep 20 Javascript
Vue实现动态添加或者删除对象和对象数组的操作方法
Sep 21 Javascript
JS实现根据数组对象的某一属性排序操作示例
Jan 14 Javascript
Echarts动态加载多条折线图的实现代码
May 24 Javascript
监控微信小程序中的慢HTTP请求过程详解
Jul 05 Javascript
vue flex 布局实现div均分自动换行的示例代码
Aug 05 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
DC动画电影《黑暗正义联盟》曝预告 5月5日上线数字平台
2020/04/09 欧美动漫
php从右向左/从左向右截取字符串的实现方法
2011/11/28 PHP
PHP高级对象构建 多个构造函数的使用
2012/02/05 PHP
PHP ? EasyUI DataGrid 资料取的方式介绍
2012/11/07 PHP
C#静态方法与非静态方法实例分析
2014/09/22 PHP
php+ajax实现的点击浏览量加1
2015/04/16 PHP
php数据结构之顺序链表与链式线性表示例
2018/01/22 PHP
js 多浏览器分别判断代码
2010/04/01 Javascript
js时间戳格式化成日期格式的多种方法
2013/11/11 Javascript
javascript实现删除前弹出确认框
2015/06/04 Javascript
javascript实现下班倒计时效果的方法(可桌面通知)
2015/07/10 Javascript
js获取表格的行数和列数的方法
2015/10/23 Javascript
JS实现的样式切换功能tableCSS实例
2016/12/30 Javascript
JS对象创建的几种方式整理
2017/02/28 Javascript
Vue表单验证插件Vue Validator使用方法详解
2017/04/07 Javascript
AngularJS中的拦截器实例详解
2017/04/07 Javascript
微信JS-SDK选取手机照片上传功能
2017/04/21 Javascript
vue拦截器Vue.http.interceptors.push使用详解
2017/04/22 Javascript
Js自定义多选框效果的实例代码
2017/07/05 Javascript
nodeJS服务器的创建和重新启动的实现方法
2018/05/12 NodeJs
Vue infinite update loop的问题解决
2019/04/23 Javascript
JavaScript实现轮播图效果代码实例
2019/09/28 Javascript
vue中使用vue-pdf的方法详解
2020/09/05 Javascript
JavaScript实现10秒后再次获取验证码
2020/12/02 Javascript
python web基础之加载静态文件实例
2018/03/20 Python
Python基于socket模块实现UDP通信功能示例
2018/04/10 Python
python 实现在Excel末尾增加新行
2018/05/02 Python
对Python实现累加函数的方法详解
2019/01/23 Python
详解Python time库的使用
2019/10/10 Python
python装饰器练习题及答案
2019/11/01 Python
python nohup 实现远程运行不宕机操作
2020/04/16 Python
基于Python中random.sample()的替代方案
2020/05/23 Python
Python加速程序运行的方法
2020/07/29 Python
世界第一曲奇连锁店:Mrs. Fields Cookies
2017/02/04 全球购物
俄罗斯在线大型超市:ТутПросто
2021/01/08 全球购物
业务部主管岗位职责
2014/01/29 职场文书