在vue中存在插槽,在react中使用renderProps进行操作
使用方式
1.在父组件标签使用时,在标签内定义一个属性render
2.render接受一个函数做为参数,返回一个子组件,可以将需要传递到子组件的数据当作参数传递 到子组件上
3.在子组件中需要使用this.props.renders()调用
RenderProps.jsx
import React, { Component } from 'react'
import "./index.css"
export default class Parent extends Component {
render() {
return (
<div className="parent">
<h1>我是一个parent组件</h1>
<A render={name=><B name={name}/>}/>
</div>
)
}
}
class A extends Component {
state={
name:"wangsu"
}
render() {
const {name}=this.state
return (
<div className="A">
<h1>我是一个A组件</h1>
{this.props.render(name)}
</div>
)
}
}
class B extends Component {
render() {
return (
<div className="B">
<h1>我是一个B组件</h1>
{this.props.name}
</div>
)
}
}
index.css
.parent{
width: 400px;
height: 400px;
background-color: aqua;
display: flex;
justify-content: flex-end;
align-items: flex-end;
}
.A{
width: 300px;
height: 300px;
background-color: yellow;
display: flex;
justify-content: flex-end;
align-items: flex-end;
}
.B{
width: 200px;
height: 200px;
background-color: green;
}