好客租房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

相关文章
|
存储 安全 Java
|
前端开发
饿了么el-dialog自定义内容以及el-dialog自定义样式
饿了么el-dialog自定义内容以及el-dialog自定义样式
1058 0
inux CentOS 7 如何进入默认工作目录 [root@localhost ~]
这篇文章讨论了如何在Linux CentOS 7系统中进入默认工作目录。默认工作目录通常是用户的主目录,表示为`[root@localhost ~]`,其中波浪号`~`代表当前用户的主目录。文章可能还包含了如何打开这个默认工作目录的步骤和说明。不过,具体内容没有提供详细信息,通常可以通过打开终端并使用`cd ~`命令来进入默认工作目录。如果需要更详细的步骤或有特定的问题,可能需要查看原文获取更多信息。
|
机器学习/深度学习 测试技术 计算机视觉
NeurIPS 2024:FaceChain团队新作,开源拓扑对齐人脸表征模型TopoFR
在2024年NeurIPS会议上,FaceChain团队推出TopoFR模型,通过利用数据的拓扑结构信息,显著提升了人脸识别的准确性。TopoFR采用PTSA策略和SDE策略,分别增强了模型的泛化能力和对硬样本的处理效果。实验结果显示,TopoFR在多个基准测试中表现优异,特别是在IJB-C和IJB-B等高难度测试中,显著超越了现有方法。
443 5
|
消息中间件 监控 前端开发
RabbitMQ插件详解:rabbitmq_web_stomp【RabbitMQ 六】
RabbitMQ插件详解:rabbitmq_web_stomp【RabbitMQ 六】
1444 0
|
存储 人工智能 自然语言处理
阿里云的通义千问
5月更文挑战第15天
|
安全 Java 数据处理
Java面试题:什么是Java中的Optional类及其使用场景?
Java面试题:什么是Java中的Optional类及其使用场景?
259 0
|
运维 安全 测试技术
【答案】2023年国赛信息安全管理与评估第三阶段夺旗挑战CTF
【答案】2023年国赛信息安全管理与评估第三阶段夺旗挑战CTF
【答案】2023年国赛信息安全管理与评估第三阶段夺旗挑战CTF
|
敏捷开发 JavaScript 前端开发
【开题报告】基于SpringBoot的校园周边攻略平台的设计与实现
【开题报告】基于SpringBoot的校园周边攻略平台的设计与实现
304 0
|
Dart 开发者
【Flutter】Dart 面向对象 ( mixins 特性 )
【Flutter】Dart 面向对象 ( mixins 特性 )
188 0