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

发布时间 - 2026-01-11 02:42:11    点击率:

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

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替换

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


# vuejs  # 父子组件  # 数据交互  # vue父子组件的数据传递示例  # Vue 父子组件的数据传递、修改和更新方法  # Vue表单类的父子组件数据传递示例  # Vue 父子组件数据传递的四种方式( inheritAttrs + $attrs + $listen  # vue2.0父子组件间传递数据的方法  # vue组件之间数据传递的方法实例分析  # Vue组件之单向数据流的解决方法  # vue兄弟组件传递数据的实例  # Vue.js路由组件vue-router使用方法详解  # vue-router:嵌套路由的使用方法  # vue组件数据传递、父子组件数据获取  # slot  # router路由功能示例  # 是一个  # 自定义  # 大家多多  # components  # methods  # removeComment  # index  # data  # return  # function  # saveComment  # hook  # created  # span  # cindex  # init  # emit  # strong  # pre  # props 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: javascript中闭包概念与用法深入理解  Laravel怎么清理缓存_Laravel optimize clear命令详解  网页设计与网站制作内容,怎样注册网站?  Android仿QQ列表左滑删除操作  车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?  Laravel的Blade指令怎么自定义_创建你自己的Laravel Blade Directives  javascript基于原型链的继承及call和apply函数用法分析  小米17系列还有一款新机?主打6.9英寸大直屏和旗舰级影像  HTML5段落标签p和br怎么选_文本排版常用标签对比【解答】  Laravel如何与Vue.js集成_Laravel + Vue前后端分离项目搭建指南  如何为不同团队 ID 动态生成多个独立按钮  浅析上传头像示例及其注意事项  东莞专业网站制作公司有哪些,东莞招聘网站哪个好?  Laravel如何升级到最新的版本_Laravel版本升级流程与兼容性处理  如何在IIS中新建站点并配置端口与物理路径?  手机怎么制作网站教程步骤,手机怎么做自己的网页链接?  UC浏览器如何设置启动页 UC浏览器启动页设置方法  Laravel如何发送系统通知_Laravel Notifications实现多渠道消息通知  Laravel Docker环境搭建教程_Laravel Sail使用指南  Laravel怎么处理异常_Laravel自定义异常处理与错误页面教程  如何快速辨别茅台真假?关键步骤解析  如何自定义建站之星网站的导航菜单样式?  什么是javascript作用域_全局和局部作用域有什么区别?  如何注册花生壳免费域名并搭建个人网站?  如何快速搭建FTP站点实现文件共享?  Laravel安装步骤详细教程_Laravel环境搭建指南  大学网站设计制作软件有哪些,如何将网站制作成自己app?  HTML5空格在Angular项目里怎么处理_Angular中空格的渲染问题【详解】  Laravel Seeder怎么填充数据_Laravel数据库填充器的使用方法与技巧  Laravel如何生成PDF或Excel文件_Laravel文档导出工具与使用教程  如何在建站主机中优化服务器配置?  C语言设计一个闪闪的圣诞树  音乐网站服务器如何优化API响应速度?  Laravel怎么创建控制器Controller_Laravel路由绑定与控制器逻辑编写【指南】  JavaScript如何操作视频_媒体API怎么控制播放  三星网站视频制作教程下载,三星w23网页如何全屏?  Laravel怎么导出Excel文件_Laravel Excel插件使用教程  高端智能建站公司优选:品牌定制与SEO优化一站式服务  zabbix利用python脚本发送报警邮件的方法  如何在建站之星网店版论坛获取技术支持?  iOS发送验证码倒计时应用  香港服务器网站卡顿?如何解决网络延迟与负载问题?  Laravel请求验证怎么写_Laravel Validator自定义表单验证规则教程  免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?  Laravel怎么配置.env环境变量_Laravel生产环境敏感数据保护与读取【方法】  如何在服务器上三步完成建站并提升流量?  如何在Ubuntu系统下快速搭建WordPress个人网站?  原生JS实现图片轮播切换效果  html5如何实现懒加载图片_ intersectionobserver api用法【教程】  EditPlus中的正则表达式 实战(1)