Vue3 父子传参 简单易懂

在Vue 3中,父组件向子组件传递数据(也称为"props")是一个非常常见的模式。这是通过props选项在子组件中定义的,然后在父组件的模板中使用该子组件时通过属性(attributes)传递数据。

步骤 1: 定义子组件的props

首先,在子组件中定义你希望从父组件接收的props。

复制代码

vue复制代码

|---|-----------------------------------------------------------|
| | <!-- ChildComponent.vue --> |
| | <template> |
| | <div> |
| | <p>来自父组件的消息: {``{ message }}</p> |
| | </div> |
| | </template> |
| | |
| | <script> |
| | export default { |
| | name: 'ChildComponent', |
| | props: { |
| | message: String // 定义了一个名为 `message` 的prop,类型为String |
| | } |
| | } |
| | </script> |

步骤 2: 在父组件中使用子组件并传递数据

然后,在父组件的模板中,你可以使用这个子组件,并通过属性传递数据给它。

复制代码

vue复制代码

|---|-------------------------------------------------------|
| | <!-- ParentComponent.vue --> |
| | <template> |
| | <div> |
| | <ChildComponent :message="parentMessage" /> |
| | </div> |
| | </template> |
| | |
| | <script> |
| | import ChildComponent from './ChildComponent.vue'; |
| | |
| | export default { |
| | components: { |
| | ChildComponent |
| | }, |
| | data() { |
| | return { |
| | parentMessage: 'Hello from Parent!' |
| | } |
| | } |
| | } |
| | </script> |

注意,在父组件中传递props时,我们使用v-bind指令(简写为:)来绑定数据到子组件的属性上。在这个例子中,parentMessage数据属性被绑定到了ChildComponent的message属性上。

总结

  • 子组件 定义它想要接收的props。
  • 父组件 通过子组件的标签属性传递数据,并使用v-bind或简写:来绑定这些值。

Vue的props系统允许组件之间进行清晰的通信,同时保持了组件的独立性和可重用性。通过props,父组件可以安全地传递数据到子组件,而不需要担心子组件会意外修改这些数据(除非使用了.sync修饰符或v-model,但它们在Vue 3中有不同的用法和限制)。

相关推荐
沙漠之主4 小时前
C++编程教学设计资料:从入门到实战的完整课程方案
java·前端·c++
hasty4 小时前
不上传新包,也能改变用户拿到的版本:npm dist-tag 的 OIDC 权限治理
前端·npm·node.js
Csvn5 小时前
diff 算法(虚拟 DOM Reconciliation)
前端
前端snow6 小时前
ai agent --- 文件存储
前端
Frag0ut6 小时前
Chrome四大版本获取及共存指南:Stable/Beta/Dev/Canary
前端·chrome·浏览器·dev·beta·canary·共存版
IT_陈寒8 小时前
SpringBoot自动配置坑了我一把,原来是这样绕过去的
前端·人工智能·后端
广州华水科技8 小时前
单北斗GNSS变形监测在大坝安全监测中的应用与优势
前端
zeng不错8 小时前
B站 173 个投稿活动看到眼瞎?我写了个扩展,主打一个精准打击
前端
Latchh8 小时前
前端导出的JPEG红字发糊,质量要拉到100才清楚
前端·图像处理·人工智能·计算机视觉
默_笙8 小时前
🚦 请三个 AI 考官给 RAG 打分:量化评估实战(下)
前端·javascript