vue3 porps细节详解

文章介绍了在Vue中如何使用props向组件传递数据,包括在组件上声明props,通过defineProps宏或props选项进行定义,以及如何在模板中使用这些props。此外,还展示了如何利用v-for和v-bind动态地渲染多个具有不同prop值的组件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

传递 props​
如果我们正在构建一个博客,我们可能需要一个表示博客文章的组件。我们希望所有的博客文章分享相同的视觉布局,但有不同的内容。要实现这样的效果自然必须向组件中传递数据,例如每篇文章标题和内容,这就会使用到 props。

Props 是一种特别的 attributes,你可以在组件上声明注册。要传递给博客文章组件一个标题,我们必须在组件的 props 列表上声明它。这里要用到 defineProps 宏:

vue
<!-- BlogPost.vue -->
<script setup>
defineProps(['title'])
</script>

<template>
  <h4>{{ title }}</h4>
</template>
defineProps 是一个仅 <script setup> 中可用的编译宏命令,并不需要显式地导入。声明的 props 会自动暴露给模板。defineProps 会返回一个对象,其中包含了可以传递给组件的所有 props:

js
const props = defineProps(['title'])
console.log(props.title)
TypeScript 用户请参考:为组件 props 标注类型

如果你没有使用 <script setup>,props 必须以 props 选项的方式声明,props 对象会作为 setup() 函数的第一个参数被传入:

js
export default {
  props: ['title'],
  setup(props) {
    console.log(props.title)
  }
}
一个组件可以有任意多的 props,默认情况下,所有 prop 都接受任意类型的值。

当一个 prop 被注册后,可以像这样以自定义 attribute 的形式传递数据给它:

template
<BlogPost title="My journey with Vue" />
<BlogPost title="Blogging with Vue" />
<BlogPost title="Why Vue is so fun" />
在实际应用中,我们可能在父组件中会有如下的一个博客文章数组:

js
const posts = ref([
  { id: 1, title: 'My journey with Vue' },
  { id: 2, title: 'Blogging with Vue' },
  { id: 3, title: 'Why Vue is so fun' }
])
这种情况下,我们可以使用 v-for 来渲染它们:

template
<BlogPost
  v-for="post in posts"
  :key="post.id"
  :title="post.title"
 />
在演练场中尝试一下

留意我们是如何使用 v-bind 来传递动态 prop 值的。当事先不知道要渲染的确切内容时,这一点特别有用。

以上就是目前你需要了解的关于 props 的全部了。如果你看完本章节后还想知道更多细节,我们推荐你深入阅读关于 props 的完整指引。

### ARP协议工作原理 ARP (Address Resolution Protocol) 是一种用于局域网中解析 MAC 地址的协议[^2]。当一台设备需要与另一台位于同一网络中的设备通信时,发送方会广播一个 ARP 请求报文来询问目标 IP 对应的物理地址是什么。这个请求包含了源主机自己的 IP 和硬件地址以及目的主机的 IP 地址。 一旦拥有被查询 IP 地址的目标机器收到此广播消息,则该机会回应一个包含其 MAC 地址的信息给发起者。这样,原始发件人就可以知道如何通过第二层数据链路层直接寻址到达目的地了。此外,为了提高效率并减少重复查找的时间开销,每次成功获取到映射关系之后都会将其存储在一个称为 ARP 缓存表里的地方一段时间[^3]。 #### ARP 协议交互过程简化描述如下: 1. **发出 ARP 请求** 发送端构建一个 ARP 查询包,其中含有自身的 IP 及 MAC 地址,并指明想要获得哪个 IP 所属节点的 MAC 地址; 2. **等待响应** 此 ARP 请求会被扩散至整个本地子网内的所有计算机上;只有那个具有匹配 IP 的接收者才会做出反应; 3. **接收到 ARP 应答** 如果有符合条件的目的站点存在的话,那么它就会回复一条携带自己真实硬件地址的数据帧回传给提问者; 4. **更新 ARP 表项** 提问者的操作系统将新得到的信息加入到内部维护着的一张临时性的对照列表——即所谓的 ARP Cache 中去以便将来快速访问相同对象而不必再次经历上述繁琐的过程。 以下是 ARP 协议工作的简单图解表示形式: ```mermaid graph LR; A[HostA: 192.168.0.1, MAC_A] -->|Broadcast ARP Request| B((Subnet Broadcast)); C[HostC: 192.168.0.2, MAC_C]) -.-> |Listen but not respond|B; D[HostD: 192.168.0.3, MAC_D)] --|Unicast ARP Reply to HostA| A; ``` 在此图表中: - `HostA` 向所在子网上所有的成员广播了一个 ARP 请求。 - `HostC` 收到了这条信息但由于不是要找的对象所以保持沉默。 - 被指定为目标 (`192.168.0.3`) 的 `HostD` 则单独地向 `HostA` 返回了自己的实际硬件地址。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值