好客租房67-render-props模式-3演示mouseover的组件的复用

简介: 好客租房67-render-props模式-3演示mouseover的组件的复用

   //导入react

   import React from 'react'

   import ReactDOM from 'react-dom'

   

   //导入组件

   // 约定1:类组件必须以大写字母开头

   // 约定2:类组件应该继承react.component父类 从中可以使用父类的方法和属性

   // 约定3:组件必须提供render方法

   // 约定4:render方法必须有返回值

   import img from "./1.png"

   

   

   class App extends React.Component {

       constructor(props) {

           super(props)

           console.log('生命周期钩子函数:construtor')        

       }

       //初始化state

       //1进行dom操作

       //2发送网络请求  

       render() {

           console.log('生命周期钩子函数:render')

           return (

               <div id="title">

                   <h1>render props模式</h1>

                   <Mouse render={(mouse)=>{

                       return <p>

                           鼠标位置:{mouse.x}-{mouse.y}

                       </p>

                   }}/>

   

                   <Mouse render={(mouse)=>{

                       return <img src={img} alt="猫"

                       style={{position:"absolute",

                       top:mouse.y,

                       left:mouse.x,

                       width:"100px",

                       height:"100px"

                   }}/>

                   }}/>

               </div>

           )

       }

   }

   

   class Mouse extends React.Component {

       state = {

           x:0,

           y:0

       }

       componentDidMount=()=>{

           window.addEventListener('mousemove',this.handeleMove)

       }

       handeleMove=e=>{

           this.setState({

               x:e.clientX,

               y:e.clientY

           })

       }

       //监听鼠标移动事件

       render(){

           return this.props.render(this.state)

       }

   }

   

   ReactDOM.render(<App></App>, document.getElementById('root'))

运行结果

图片.png

相关文章
|
2月前
|
JavaScript
vue实战--v-for 遍历渲染按钮的两种实现方案(重点:按钮点击事件的绑定技巧)
vue实战--v-for 遍历渲染按钮的两种实现方案(重点:按钮点击事件的绑定技巧)
36 1
|
9月前
|
JavaScript
vue模板语法下集->事件处理器,表单的综合案例,组件通信
vue模板语法下集->事件处理器,表单的综合案例,组件通信
46 0
|
存储 前端开发
浅述React组件传值(看懂这一张图就够了)
浅述React组件传值(看懂这一张图就够了)
107 0
|
JavaScript
Vue中封装制作一个可复用的模态框组件
Vue中封装制作一个可复用的模态框组件
492 0
|
JavaScript 前端开发 容器
|
前端开发 JavaScript
好客租房66-render-props模式-2使用模式
好客租房66-render-props模式-2使用模式
86 0
好客租房66-render-props模式-2使用模式
|
前端开发 JavaScript
好客租房68-render-props模式-4children代替
好客租房68-render-props模式-4children代替
73 0
好客租房68-render-props模式-4children代替
|
前端开发 JavaScript
好客租房21-react组件的两种创建方式(函数组件)
好客租房21-react组件的两种创建方式(函数组件)
92 0
好客租房21-react组件的两种创建方式(函数组件)
|
前端开发
好客租房22-react组件的两种创建方式(类组件)
好客租房22-react组件的两种创建方式(类组件)
79 0
好客租房22-react组件的两种创建方式(类组件)
好客租房143-react-virtualized3让list组件占满整个屏幕
好客租房143-react-virtualized3让list组件占满整个屏幕
125 0
好客租房143-react-virtualized3让list组件占满整个屏幕