「render prop」这个词指的是一种用一个其值为函式的 prop 来在 React component 之间共享程序码的技巧。
render props 很像制造一个环境,会结合特定功能并产出赋予特定功能的元件。在 React render props 文件中提供了一个抓取滑鼠值的 mouse 元件,将传入的 cat 随滑鼠位移。
class MouseTracker extends React.Component {
render() {
return (
<div>
<h1>Move the mouse around!</h1>
//抓取位置的 Mouse 环境
<Mouse render={mouse => (
//要显示的 cat ,会再传入 mouse 抓到的 mouse position 值
<Cat mouse={mouse} />
)}/>
</div>
);
}
}
写 Render Props 大概就是要写一个通用的函示,然後提供资料跟定好介面,好让传递出来要 render 的元件可以收到资料。以下改写结果:
function Mouse(props) {
const [mousePosition, setMousePosition] = React.useState({ x: 0, y: 0 });
const handleMouseMove = () => {
setMousePosition({
x: event.clientX,
y: event.clientY
});
}
return (
<div style={{ height: '100vh' }} onMouseMove={handleMouseMove}>
{props.render(mousePosition)}
</div>
)
}
function MouseTracker () {
return (
<div>
<h1>Move the mouse around!</h1>
<Mouse render={mouse => (
<Cat mouse={mouse} />
)}/>
</div>
);
}
function Cat (props) {
const mouse = props.mouse;
return (
<img src="https://static-s.aa-cdn.net/img/ios/1400324825/6d34f2daf4445d9267229e63a059a858?v=1" style={{ position: 'absolute', left: mouse.x, top: mouse.y, transform: 'translate(-50%, -50%)' }} />
);
}
const rootElement = document.getElementById("root");
ReactDOM.render(<MouseTracker />, rootElement);
以上今天。
参考资料:
https://zh-hant.reactjs.org/docs/render-props.html
<<: [第二十天]从0开始的UnityAR手机游戏开发-介绍Animator02
昨天我们介绍了Python跟Vagrant这两个东东是干啥的 以及这两个东东如何安装 今天我们会把剩...
在开始运用之前,先来了解几个机器学习上常用的概念。 首先是交叉验证法(Cross-valid...
昨天介绍了computed的基本使用方式,今天多讲一点点有关methods的, 大家准备好了吗ε٩(...
在解析this的方式箭头函式与函式宣告不同,函式宣告是以呼叫时的方式来决定,而箭头函式在建立时就会决...
设置跨域代码: ipfs config --json API.HTTPHeaders.Access-...