props组件属性
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>props对象</title>
</head>
<body>
<div id="example"></div>
<script src="https://cdn.jsdelivr.net/npm/react@16.14.0/umd/react.production.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/react-dom@16.14.0/umd/react-dom.production.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@babel/standalone@7.23.2/babel.min.js"></script>
<script type="text/babel">
class Hello extends React.Component {
render() {
return (
<h1>
Hello, {this.props.name1}, {this.props.name2}
</h1>
);
}
}
ReactDOM.render(
<Hello name1="小明" name2="小龙" />,
document.getElementById("example")
);
const values = {
name1: "小李",
name2: "小丽",
};
ReactDOM.render(
<Hello name1={values.name1} name2={values.name2} />,
document.getElementById("example")
);
</script>
</body>
</html>
延展操作符
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>props对象</title>
</head>
<body>
<div id="example"></div>
<script src="https://cdn.jsdelivr.net/npm/react@16.14.0/umd/react.production.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/react-dom@16.14.0/umd/react-dom.production.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@babel/standalone@7.23.2/babel.min.js"></script>
<script type="text/babel">
class Hello extends React.Component {
render() {
return (
<h1>
Hello, {this.props.name1}, {this.props.name2}
</h1>
);
}
}
const values = {
name1: "小牛",
name2: "小狗",
};
ReactDOM.render(
<Hello {...values} />,
document.getElementById("example")
);
</script>
</body>
</html>
this.props
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>props对象</title>
</head>
<body>
<div id="example"></div>
<script src="https://cdn.jsdelivr.net/npm/react@16.14.0/umd/react.production.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/react-dom@16.14.0/umd/react-dom.production.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@babel/standalone@7.23.2/babel.min.js"></script>
<script type="text/babel">
class Link extends React.Component {
render() {
return <a {...this.props}>{this.props.name}</a>;
}
}
ReactDOM.render(
<Link href="http://www.baidu.com" name="百度" />,
document.getElementById("example")
);
</script>
</body>
</html>
key
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>props对象</title>
</head>
<body>
<div id="example"></div>
<script src="https://cdn.jsdelivr.net/npm/react@16.14.0/umd/react.production.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/react-dom@16.14.0/umd/react-dom.production.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@babel/standalone@7.23.2/babel.min.js"></script>
<script type="text/babel">
class List extends React.Component {
render() {
return (
<ul>
{this.props.data.map((e, index) => {
// 增加key属性避免警告
return <li key={index}>{e}</li>;
})}
</ul>
);
}
}
ReactDOM.render(
<List data={[1, 2, 3]}></List>,
document.getElementById("example")
);
</script>
</body>
</html>
this.props.children
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>props对象</title>
</head>
<body>
<div id="example"></div>
<script src="https://cdn.jsdelivr.net/npm/react@16.14.0/umd/react.production.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/react-dom@16.14.0/umd/react-dom.production.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@babel/standalone@7.23.2/babel.min.js"></script>
<script type="text/babel">
class ListPro extends React.Component {
render() {
return (
<ul>
{React.Children.map(this.props.children, (child, index) => {
// 增加key属性避免警告
return <li key={index}>{child}</li>;
})}
</ul>
);
}
}
ReactDOM.render(
<ListPro a="1" b={2}>
<em>斜体</em>
<strong>粗体</strong>
<a href="#">链接</a>
</ListPro>,
document.getElementById("example")
);
</script>
</body>
</html>
props默认值
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>props对象</title>
</head>
<body>
<div id="example"></div>
<script src="https://cdn.jsdelivr.net/npm/react@16.14.0/umd/react.production.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/react-dom@16.14.0/umd/react-dom.production.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@babel/standalone@7.23.2/babel.min.js"></script>
<script type="text/babel">
const data = 123;
class ShowTitle extends React.Component {
static defaultProps = {
title: "默认标题",
};
render() {
return <h1>{this.props.title}</h1>;
}
}
ReactDOM.render(
<ShowTitle title={data} />,
document.getElementById("example")
);
</script>
</body>
</html>