当前位置: 首页 > news >正文

Vue2-父组件与子组件参数互传

在 Vue2 中,父组件与子组件的参数传递是组件通信的核心内容,主要通过以下方式实现:

一、父组件向子组件传值(props)

父组件通过 props 向子组件传递数据,子组件通过声明接受后使用。

1、父组件中:


<template><div id="app"><!-- 传递动态值(使用v-bind) --><ChildComponent:message="parentMessage":user-info="userInfo" /></div>
</template>
<script>
import ChildComponent from './child.vue';
export default {components: { ChildComponent },data(){return {parentMessage: '我是父组件的动态消息',userInfo: { name: '张三', age: 20 }}},methods: {},
}
</script><style></style>

2、子组件中:

通过 props 选项声明接受父组件传递的数据,可指定类型、默认值等。

<template><div  id="app"><p>{{ title }}</p><p>{{ message }}</p><p>{{ userInfo.name }}</p></div>
</template><script>
export default {// 方式2:详细配置(推荐,可做类型校验、默认值等)props: {title: {type: String, // 类型required: true // 是否必传},message: {type: String,default: '默认消息' // 默认值},userInfo: {type: Object,default() { // 对象/数组的默认值需用函数返回return { name: '未知', age: 0 };}}}
};
</script>

二、子组件向父组件传值 ($emit事件)

子组件通过触发自定义事件($emit)向父组件传递数据,父组件监听事件并处理。

1、子组件中:

通过 this.$emit('事件名',传递的数据) 触发事件。

<template><div><button @click="sendDataToParent">向父组件传值</button></div>
</template><script>
export default {data() {return {childMessage: '我是子组件的数据'};},methods: {sendDataToParent() {// 触发自定义事件,并传递数据(可传多个参数)this.$emit('child-event', this.childMessage, 123);}}
};
</script>

2、父组件中:

监听子组件触发的事件,通过事件处理函数接受数据。

<template><div><!-- 监听子组件的自定义事件 --><ChildComponent @child-event="handleChildEvent" /></div>
</template><script>
import ChildComponent from './ChildComponent.vue';export default {components: { ChildComponent },methods: {handleChildEvent(msg, num) { // 接收子组件传递的参数console.log('子组件传来的数据:', msg, num); // 输出:我是子组件的数据 123}}
};
</script>

三、父组件双向绑定(.sync 修饰符)

http://www.dtcms.com/a/573197.html

相关文章:

  • 前端学习之JavaScript
  • CrewCut 项目 Alpha 阶段计划与分工
  • 湖南首条免费高速轨迹呈现:借助 Leaflet -Trackplayer 实现 WebGIS 可视化
  • NewStarCTF2025-Week5-Web
  • 0基础学前端:100天拿offer实战课(第4天)—— Flex布局实战:10分钟搞定网页“排版难题”
  • 苏州专业做网站的公司有哪些网站空间 控制面板
  • “AI+XR”赋能智慧研创中心:告别AI焦虑,重塑教师未来
  • 知识就是力量——气体检测传感器
  • Arbess零基础学习 - 使用Arbess+GitLab实现Python项目构建/主机部署
  • 建设银行手机银行下载官方网站下载wordpress资源搜索插件
  • 替代 TDesign Dialog:用 div 实现可拖拽、遮罩屏蔽的对话框
  • 【雪花算法与主键自增:场景适配指南,从分布式特性到业务需求】
  • 在Linux上实现Modbus RTU通信:一个轻量级C++解决方案
  • 【Go】P19 Go语言并发编程核心(三):从 Channel 安全到互斥锁
  • Node.js 环境变量配置全攻略
  • 基于 Kickstart 的 Linux OS CICD 部署(webhook)
  • 哪家网络公司做网站好全国免费信息发布平台
  • 《C++ 搜索二叉树》深入理解 C++ 搜索二叉树:特性、实现与应用
  • iOS 发布 App 全流程指南,从签名打包到开心上架(Appuploader)跨平台免 Mac 上传实战
  • 人工智能Deepseek医药AI培训师培训讲师唐兴通讲课课程纲要
  • 做网站需要学哪些语言鞍山市人力资源招聘信息网
  • Fastadmin中使用小程序登录
  • 网站功能优化的方法办一个购物网站要多少钱
  • SpringCloud+Netty集群即时通讯项目
  • 企业内容安全管理策略有哪些?
  • PPT处理控件Aspose.Slides教程:使用Java将PowerPoint笔记导出为PDF
  • 覆盖 DC50-1000V!AIM-D500-CA 绝缘监测仪,满足不同充电桩安全监测需求
  • 2025_11_5_刷题
  • 【数据结构与算法】手撕排序算法(二)
  • 网站开发做什么科目北京网站建设大概多少钱