深入理解React - Props

import React, { Component } from 'react'
import ReactDOM from 'react-dom/client'
// 导入prop-types
import PropTypes from 'prop-types'
import { nanoid } from 'nanoid'
import Husband from './components/Husband'
import Wife from './components/Wife'
const root = ReactDOM.createRoot(document.getElementById('root'))
class Child extends React.Component {
render() {
const { children } = this.props
const res = children()
return (
<>
<div>{res}</div>
</>
)
}
}
class App01 extends React.Component {
render() {
return (
<Child>
{() => {
return (
<>
<div>
<h1>we are the world!</h1>
</div>
</>
)
}}
</Child>
)
}
}
class Header extends React.Component {
render() {
return (
<>
<div>
<h1></h1>
</div>
</>
)
}
}
// 形参可以给组件传入默认值
function HeaderCom({ name = 'we are the world' }) {
return (
<>
<div>
<h1>{name}</h1>
</div>
</>
)
}
HeaderCom.protoTypes = {
name: PropTypes.string.isRequired,
}
// 设置组件的propTypes属性
Header.propTypes = {
// 设置props属性的类型
list: PropTypes.array.isRequired,
name: PropTypes.string,
// 🍧 element是JSX
title: PropTypes.element,
obj: PropTypes.shape({
age: PropTypes.number,
gender: PropTypes.string,
}),
}
class App02 extends React.Component {
render() {
return (
<>
<div>
<HeaderCom name={'Felix'} />
<hr />
<Header
obj={{ age: '24' }}
list={[]}
name={'wangzz'}
title={<h1>Hello React</h1>}
></Header>
</div>
</>
)
}
}
const divNode = (
<div>
<App02 />
</div>
)
root.render(divNode)
posted @   Felix_Openmind  阅读(11)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
*{cursor: url(https://files-cdn.cnblogs.com/files/morango/fish-cursor.ico),auto;}
点击右上角即可分享
微信分享提示