情况一:父组件给子组件传值方法,使用props
父页面:parent.vue
<template> <div class="sidebar_contianer"> <sidebar-item :routerData="transmitData"></sidebar-item> </div> </template> <script> import sidebarItem from './sidebarItem' export default { data(){ return{ transmitData:{ title:'首页', uuid:'123' } } }, components:{ sidebarItem } } </script>
第一步:用import引入子组件
第二步:在components中注入子组件
第三步:在子组件中定义一个指令:routerData="transmitData" (routerData名称需要和子组件中的props保持一致,transmitData是要传递给子组件的数据)
子页面:child.vue
<script> export default { name:'sidebarItem', props:{ transmitData:{ type:Object, default:null } } } </script>
第四步:在子组件中定义props属性,transmitData的type可以自定义类型(但是必须和父组件中的数据类型一致,否则会报错),default是默认值。
情况二:子组件要给父组件传值方法,使用$emit
子页面:a.vue
<template> <div class="testCom"> <input type="text" v-model="message" /> <button @click="click">发送消息给爸爸</button> </div> </template> <script> export default { data() { return { message: '我是来自子组件的消息' } }, methods: { click() { //1、childFn 组件方法名,父组件中用childFn方法接收子组件中的数据;2、message是传递给父组件的数据 this.$emit('childFn', this.message); } } } </script>
第一步:this.$emit("方法名","传递给父组件的数据")
父页面:b.vue
<template> <div> <child-com @childFn="parentFn"></child-com> </div> </template> <script> export default { // ... data: { message: '' }, methods: { parentFn(childData) { this.message = childData; } } } </script>
第二步:父组件中注入子组件(此处代码中省略,如要参考请看情况一)
第三步:定义方法childFn(必须和子组件中方法名一致),parentFn定义可随意。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理