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

相关文章
|
5月前
|
JavaScript
vue实战--v-for 遍历渲染按钮的两种实现方案(重点:按钮点击事件的绑定技巧)
vue实战--v-for 遍历渲染按钮的两种实现方案(重点:按钮点击事件的绑定技巧)
106 1
|
5月前
|
JavaScript
vue 组件封装——可自由拖拽移动的盒子
vue 组件封装——可自由拖拽移动的盒子
102 0
|
7月前
|
缓存 前端开发 JavaScript
【亮剑】在React中如何通过点击事件控制组件显示与隐藏,包括基础概念和高级应用
【4月更文挑战第30天】本文介绍了在React中如何通过点击事件控制组件显示与隐藏,包括基础概念和高级应用。使用`useState`钩子和Context API可实现状态驱动的条件渲染,通过CSS类控制组件样式,或利用React Portals在DOM不同位置渲染。性能优化应注意避免不必要的渲染、合理使用Keys、优化事件处理器、使用Memoization及清理资源。测试和验证确保逻辑正确性,以构建动态用户界面并提升应用性能。
652 0
QGS
|
7月前
|
JavaScript 安全 前端开发
手摸手Element-ui路由VueRoute
手摸手Element-ui路由VueRoute
QGS
70 1
|
7月前
|
JavaScript
适配针式打印机EPSON爱普生,在vue项目中用原生js搭配iframe完成唤起打印弹窗
适配针式打印机EPSON爱普生,在vue项目中用原生js搭配iframe完成唤起打印弹窗
|
JSON JavaScript 前端开发
【2】Vue项目引用Element UI(饿了么框架)菜单导航条初期配置
【2】Vue项目引用Element UI(饿了么框架)菜单导航条初期配置
|
JavaScript 前端开发
《Vue3实战》 第六章 样式绑定和事件处理
《Vue3实战》 第六章 样式绑定和事件处理
103 0
|
JavaScript
Vue中封装制作一个可复用的模态框组件
Vue中封装制作一个可复用的模态框组件
515 0
|
缓存 JavaScript 开发者
冇事来学系--Vue2.0中动态组件和插槽slot
动态组件指的是动态切换组件的显示与隐藏。
517 0
|
前端开发 JavaScript
好客租房66-render-props模式-2使用模式
好客租房66-render-props模式-2使用模式
102 0
好客租房66-render-props模式-2使用模式

热门文章

最新文章