目录
- 1,children 属性
- 2,多个属性
普通对象等,可以通过变量直接传递,那类似 vue 中的 slot
插槽,如何传递元素内容?
1,children 属性
实际上,写在自定义组件标签的内部代码,默认会被当做 children
属性。
举例:
// 父组件
import MyComp from "./components/MyComp";
export default class App extends Component {
render() {
return <MyComp>123</MyComp>;
}
}
// 子组件
export default class MyComp extends Component {
render() {
console.log(this.props);
return <div>{this.props.children}</div>;
}
}
打印结果:
更改父组件如下:
export default class App extends Component {
render() {
return (
<MyComp>
<h1>标题1</h1>
</MyComp>
);
}
}
打印结果:一个React元素。
2,多个属性
这些 props 本质上都是 React.createElement()
创建的对象,所以传递的都是对象。
// 父组件
export default class App extends Component {
render() {
return (
<MyComp content2={<h2>标题2</h2>} content3={<h3>标题3</h3>}>
<h1>标题1</h1>
</MyComp>
);
}
}
// 子组件
export default class MyComp extends Component {
render() {
const { children, content2, content3 } = this.props;
return (
<div>
{children}
{content2}
{content3}
</div>
);
}
}
展示结果:
以上。