vuejs父子组件之间数据交互详解


Posted in Javascript onAugust 09, 2017

父子组件之间的数据交互遵循:

props down - 子组件通过props接受父组件的数据
events up - 父组件监听子组件$emit的事件来操作数据

示例

子组件的点击事件函数中$emit自定义事件

export default {
 name: 'comment',
 props: ['issue','index'],
 data () {
 return {
  comment: '',
 }
 },
 components: {},
 methods: {
 removeComment: function(index,cindex) {
  this.$emit('removeComment', {index:index, cindex:cindex});
 },
 saveComment: function(index) {
  this.$emit('saveComment', {index: index, comment: this.comment});
  this.comment="";
 }
 },
 //hook 
 created: function () {
 //get init data

 }

}

父组件监听事件

<comment v-show="issue.show_comments" :issue="issue" :index="index" @removeComment="removeComment" @saveComment="saveComment"></comment>

父组件的methods中定义了事件处理程序

removeComment: function(data) {
  var index = data.index, cindex = data.cindex;
  var issue = this.issue_list[index];
  var comment = issue.comments[cindex];
  axios.get('comment/delete/cid/'+comment.cid)
  .then(function (resp) {
  issue.comments.splice(cindex,1);
  });
 },
 saveComment: function(data) {
  var index = data.index;
  var comment = data.comment;
  var that = this;
  var issue =that.issue_list[index];
  var data = {
  iid: issue.issue_id,
  content: comment
  };

  axios.post('comment/save/',data)
  .then(function (resp) {
  issue.comments=issue.comments||[];
  issue.comments.push({
   cid: resp.data,
   content: comment
  });
  });
  
  //clear comment input
  this.comment="";
 }

 },

注意参数的传递是一个对象

其实还有更多的场景需要组件间通信

官方推荐的通信方式

  • 首选使用Vuex
  • 使用事件总线:eventBus,允许组件自由交流
  • 具体可见:$dispatch 和 $broadcast替换

 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
使用jquery实现div的tab切换实例代码
May 27 Javascript
理解javascript中的回调函数(callback)
Sep 02 Javascript
JavaScript模拟实现继承的方法
Mar 30 Javascript
jQuery实现首页顶部可伸缩广告特效代码
Apr 15 Javascript
jquery div模态窗口的简单实例
May 28 Javascript
Bootstrap基本组件学习笔记之列表组(11)
Dec 07 Javascript
js实现横向拖拽导航条功能
Feb 17 Javascript
详解vue2.0组件通信各种情况总结与实例分析
Mar 22 Javascript
详谈DOM简介及节点、属性、查找节点的方法
Nov 16 Javascript
浅谈react受控组件与非受控组件(小结)
Feb 09 Javascript
JS处理一些简单计算题
Feb 24 Javascript
JavaScript函数重载操作实例浅析
May 02 Javascript
Angular在模板驱动表单中自定义校验器的方法
Aug 09 #Javascript
浅谈react+es6+webpack的基础配置
Aug 09 #Javascript
js中less常用的方法小结
Aug 09 #Javascript
利用JS做网页特效_大图轮播(实例讲解)
Aug 09 #Javascript
基于Vue实例对象的数据选项
Aug 09 #Javascript
react-native之ART绘图方法详解
Aug 08 #Javascript
jQuery Easyui Treegrid实现显示checkbox功能
Aug 08 #jQuery
You might like
PHP如何得到当前页和上一页的地址?
2006/11/27 PHP
php的access操作类
2008/04/09 PHP
PHP版自动生成文章摘要
2008/07/23 PHP
在IIS7.0下面配置PHP 5.3.2运行环境的方法
2010/04/13 PHP
PHP发明人谈MVC和网站设计架构 貌似他不支持php用mvc
2011/06/04 PHP
php使用timthumb生成缩略图的方法
2016/01/22 PHP
CakePHP框架Model关联对象用法分析
2017/08/04 PHP
php实现微信支付之退款功能
2018/05/30 PHP
jQuery AJAX实现调用页面后台方法和web服务定义的方法分享
2012/03/01 Javascript
给事件响应函数传参数的四种方式小结
2013/12/05 Javascript
Jquery实现自定义tooltip示例代码
2014/02/12 Javascript
实例说明为什么不要行内使用javascript
2014/04/18 Javascript
信息页文内画中画广告js实现代码(文中加载广告方式)
2016/01/03 Javascript
前端程序员必须知道的高性能Javascript知识
2016/08/24 Javascript
拖动时防止选中
2017/02/03 Javascript
AngularJS实现页面定时刷新
2017/03/14 Javascript
echarts饼图扇区添加点击事件的实例
2017/10/16 Javascript
使用Layui搭建后台管理界面的操作方法
2019/09/20 Javascript
微信小程序静默登录的实现代码
2020/01/08 Javascript
基于javascript原生判断DOM是否加载完毕
2020/10/14 Javascript
Python实现列表删除重复元素的三种常用方法分析
2017/11/24 Python
Python+PyQt5实现灭霸响指功能
2020/05/25 Python
如何用python免费看美剧
2020/08/11 Python
html5默认气泡修改的代码详解
2020/03/13 HTML / CSS
欧缇丽英国官方网站:Caudalie英国
2016/08/17 全球购物
Mamas & Papas沙特阿拉伯:英国最受欢迎的婴儿品牌
2017/11/20 全球购物
Linux的文件类型
2016/07/05 面试题
畜牧兽医本科生个人的自我评价
2013/10/11 职场文书
年终总结会主持词
2014/03/25 职场文书
工作说明书范文
2014/05/07 职场文书
关于长城的导游词
2015/01/30 职场文书
2015年光棍节活动总结
2015/03/24 职场文书
《花钟》教学反思
2016/02/17 职场文书
goland 恢复已更改文件的操作
2021/04/28 Golang
Python数据分析之绘图和可视化详解
2021/06/02 Python
SpringCloud Alibaba项目实战之nacos-server服务搭建过程
2021/06/21 Java/Android