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 相关文章推荐
跨域表单提交状态的变相判断代码
Nov 12 Javascript
基于jQuery的一个扩展form序列化到json对象
Dec 09 Javascript
seajs1.3.0源码解析之module依赖有序加载
Nov 07 Javascript
让网页跳转到指定位置的jquery代码非书签
Sep 06 Javascript
jQuery EasyUI Draggable拖动组件
Mar 01 Javascript
Vue.js基础学习之class与样式绑定
Mar 20 Javascript
js实现上传并压缩图片效果
Jan 10 Javascript
对vux点击事件的优化详解
Aug 28 Javascript
vue2实现搜索结果中的搜索关键字高亮的代码
Aug 29 Javascript
Vue+ElementUI项目使用webpack输出MPA的方法
Aug 27 Javascript
JavaScript async/await原理及实例解析
Dec 02 Javascript
vue3.0+vue-router+element-plus初实践
Dec 02 Vue.js
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
Windows下利用Gvim写PHP产生中文乱码问题解决方法
2011/04/20 PHP
PHP 基于文件头的文件类型验证类函数
2012/05/01 PHP
PHP面向对象三大特点学习(充分理解抽象、封装、继承、多态)
2012/05/07 PHP
php函数间的参数传递(值传递/引用传递)
2013/09/23 PHP
PHP数字金额转换成中文大写显示
2019/01/05 PHP
JQuery中的ready函数冲突的解决方法
2010/05/17 Javascript
8个实用的jQuery技巧
2014/03/04 Javascript
jquery实现在页面加载的时自动为日期插件添加当前日期
2014/08/20 Javascript
JavaScript实现点击按钮字体放大、缩小
2016/02/29 Javascript
vuejs响应用户事件(如点击事件)
2017/03/14 Javascript
浅谈一种让小程序支持JSX语法的新思路
2019/06/16 Javascript
vue点击自增和求和的实例代码
2019/11/06 Javascript
JavaScript实现Tab选项卡切换
2020/02/13 Javascript
js实现点击选项置顶动画效果
2020/08/25 Javascript
微信小程序实现可拖动悬浮图标(包括按钮角标的实现)
2020/12/29 Javascript
python 实现登录网页的操作方法
2018/05/11 Python
python挖矿算力测试程序详解
2019/07/03 Python
使用Python串口实时显示数据并绘图的例子
2019/12/26 Python
django rest framework 过滤时间操作
2020/07/12 Python
anaconda安装pytorch1.7.1和torchvision0.8.2的方法(亲测可用)
2021/02/01 Python
django使用多个数据库的方法实例
2021/03/04 Python
Hanky Panky官方网站:内衣和睡衣
2019/07/25 全球购物
九年级语文教学反思
2014/02/04 职场文书
聘用意向书范本
2014/04/01 职场文书
美化环境标语
2014/06/20 职场文书
微笑服务标语
2014/06/24 职场文书
普通党员个人对照检查材料
2014/09/18 职场文书
元旦标语大全
2014/10/09 职场文书
模范教师事迹材料
2014/12/16 职场文书
材料员岗位职责
2015/02/10 职场文书
图书借阅制度范本
2015/08/06 职场文书
2019感恩宣传标语!
2019/07/05 职场文书
简单介绍 http请求响应参数、无连接无状态、MIME、状态码、端口、telnet、curl
2021/03/31 HTML / CSS
MySQL表的增删改查基础教程
2021/04/07 MySQL
redis 存储对象的方法对比分析
2021/08/02 Redis
Python开发简易五子棋小游戏
2022/05/02 Python