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

传递给组件

React 组件使用 props 相互通信。每个父组件都可以通过为其子组件提供道具来将一些信息传递给子组件。Props 可能会让您想起 HTML 属性,但您可以通过它们传递任何 JavaScript 值,包括对象、数组和函数。

Props 是传递给 JSX 标签的信息。例如,、、、、和是您可以传递给 :classNamesrcaltwidthheight<img>

function Avatar() {return (<imgclassName="avatar"src="https://i.imgur.com/1bX5QH6.jpg"alt="Lin Lanying"width={100}height={100}/>);
}export default function Profile() {return (<Avatar />);
}

可以传递给标签的 prop 是预定义的(ReactDOM 符合 HTML 标准)。但是你可以将任何道具传递给自己组件,比如 ,来自定义它们。就是这样!<img><Avatar>

将道具传递给组件

在此代码中,组件不会将任何 props 传递给其子组件:ProfileAvatar

export default function Profile() {return (<Avatar />);
}

你可以分两步给出一些道具。Avatar

第 1 步:将 props 传递给子组件

首先,将一些道具传递给 .例如,让我们传递两个道具:(一个对象)和(一个数字):Avatarpersonsize

export default function Profile() {return (<Avatarperson={{ name: 'Lin Lanying', imageId: '1bX5QH6' }}size={100}/>);
}

第 2 步:读取子组件内的 props

您可以通过列出它们的名称来阅读这些道具,这些道具在内部和后面用逗号分隔。这使您可以在代码中使用它们,就像使用变量一样。person, size({})function AvatarAvatar

function Avatar({ person, size }) {// person and size are available here
}

添加一些逻辑,使用 和 props 进行渲染,就完成了。Avatarpersonsize

现在,您可以配置为使用不同的道具以多种不同的方式进行渲染。尝试调整值!Avatar

import { getImageUrl } from './utils.js';function Avatar({ person, size }) {return (<imgclassName="avatar"src={getImageUrl(person)}alt={person.name}width={size}height={size}/>);
}export default function Profile() {return (<div><Avatarsize={100}person={{ name: 'Katsuko Saruhashi', imageId: 'YfeOqp2'}}/><Avatarsize={80}person={{name: 'Aklilu Lemma', imageId: 'OKS67lh'}}/><Avatarsize={50}person={{ name: 'Lin Lanying',imageId: '1bX5QH6'}}/></div>);
}
export function getImageUrl(person, size = 's') {return ('https://i.imgur.com/' +person.imageId +size +'.jpg');
}

http://www.lryc.cn/news/343081.html

相关文章:

  • 鸿蒙通用组件弹窗简介
  • [译文] 恶意代码分析:1.您记事本中的内容是什么?受感染的文本编辑器notepad++
  • Spring Boot3.x集成Disruptor4.0
  • GoEdge自建CDN工具
  • 牛客储物点的距离
  • 【C++历练之路】红黑树——map与set的封装实现
  • RDB快照是怎么实现的?
  • 智能体可靠性的革命性提升,揭秘知识工程领域的参考架构新篇章
  • Shell 初始化配置指北 | Ubuntu
  • [嵌入式系统-69]:RT-Thread-组件:网络组件“组”,RT-Thread系统通向外部网络世界的入口
  • Linux学习笔记1---Windows上运行Linux
  • Java算法-力扣leetcode-135. 分发糖果
  • 企业为什么需要主数据管理工具?十大热门主数据管理工具盘点
  • 免费思维13招之一:体验型思维
  • 面试C++(基础篇)-NULL与nullptr的区别?
  • 「AIGC」深度学习
  • mysql5.7数据库安装及性能测试
  • 聪明与诚实:社会信任的桥梁
  • 基于单片机的无线数据传输系统设计
  • 【IP:Internet Protocol,子网(Subnets),IPv6:动机,层次编址:路由聚集(rout aggregation)】
  • 智启算力平台基本操作
  • 微信小程序 【关键部分】
  • JavaEE技术之MySql高级(索引、索引优化、sql实战、View视图、Mysql日志和锁、多版本并发控制)
  • OCR文本识别模型CRNN
  • 【数据结构】闲谈A股实时交易的数据结构-队列
  • 深入探索van Emde Boas树:原理、操作与C语言实现
  • 正点原子[第二期]Linux之ARM(MX6U)裸机篇学习笔记-14-主频和时钟配置
  • tomcat打开乱码修改端口
  • 03 JavaSE-- 访问控制权限、接口、抽象类、内部类、Object类、异常
  • free5gc+ueransim操作