美文网首页
props 高阶组件

props 高阶组件

作者: skoll | 来源:发表于2020-08-04 20:42 被阅读0次
    import React from 'react'
    
    // 这个组件追踪web应用中鼠标的位置 
    class MouseTracker extends React.Component{
        constructor(props){
            super(props)
            this.handleMouseMove=this.handleMouseMove.bind(this)
            this.state={
                x:0,
                y:0,
            }
        }
    
        handleMouseMove(e){
            this.setState({
                x:e.clientX,
                y:e.clientY,
            })
        }
    
        render(){
            return (
                <div style={{height:"100vh"}} onMouseMove={this.handleMouseMove}>
                    <h1>移动鼠标</h1>
                    <p>当前坐标位置是({this.state.x}-{this.state.y})</p>
                    {/* props.render组件需要在这里显示出来,并使用我们这里的this.state这个参数 */}
                    {this.props.render(this.state)}
                    {/* 这里只是留了一个接口,来显示可能出现的组件 */}
                </div>
            )
        }
    }
    
    export default MouseTracker
    
    使用
    import React from 'react'
    
    // 这个组件追踪web应用中鼠标的位置
    class Cat extends React.Component{
        render() {
            const mouse = this.props.mouse;
            return (
              <div style={{ position: 'absolute', left: mouse.x, top: mouse.y,background:"yellow" }} />
            );
          }
    }
    
    export default Cat
    

    相关文章

      网友评论

          本文标题:props 高阶组件

          本文链接:https://www.haomeiwen.com/subject/mdcgrktx.html