好客租房66-render-props模式-2使用模式

简介: 好客租房66-render-props模式-2使用模式

使用步骤

创建Mouse组件,在组件中提供复用状态逻辑代码(1:状态 2操作状态的方法)

2将要复用的状态作为props.render(state)方法的参数 暴露到组件外部

   //导入react

   import React from 'react'

   import ReactDOM from 'react-dom'

   import PropTypes from 'prop-types'

   //导入组件

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

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

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

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

   

   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>

                   }}/>

               </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

相关文章
|
前端开发 JavaScript
好客租房68-render-props模式-4children代替
好客租房68-render-props模式-4children代替
85 0
好客租房68-render-props模式-4children代替
|
前端开发 JavaScript
好客租房67-render-props模式-3演示mouseover的组件的复用
好客租房67-render-props模式-3演示mouseover的组件的复用
104 0
好客租房67-render-props模式-3演示mouseover的组件的复用
|
前端开发
好客租房54-props深入(children属性)
好客租房54-props深入(children属性)
177 0
好客租房54-props深入(children属性)
|
前端开发 JavaScript
好客租房21-react组件的两种创建方式(函数组件)
好客租房21-react组件的两种创建方式(函数组件)
100 0
好客租房21-react组件的两种创建方式(函数组件)
|
前端开发
好客租房22-react组件的两种创建方式(类组件)
好客租房22-react组件的两种创建方式(类组件)
85 0
好客租房22-react组件的两种创建方式(类组件)
|
前端开发
好客租房50-通讯的三种方式(父组件传递给子组件)
好客租房50-通讯的三种方式(父组件传递给子组件)
135 0
好客租房50-通讯的三种方式(父组件传递给子组件)
|
前端开发
好客租房51-通讯的三种方式(子组件传递给父组件)
好客租房51-通讯的三种方式(子组件传递给父组件)
117 0
好客租房51-通讯的三种方式(子组件传递给父组件)
好客租房16-jsx中的列表渲染
好客租房16-jsx中的列表渲染
94 0
好客租房16-jsx中的列表渲染
好客租房65-render-props模式-1思路分析
好客租房65-render-props模式-1思路分析
88 0
|
API
好客租房64-render-props和高阶组件概述
好客租房64-render-props和高阶组件概述
99 0