前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >React高阶组件HOC的使用

React高阶组件HOC的使用

作者头像
明知山
发布2021-10-25 13:35:35
9340
发布2021-10-25 13:35:35
举报
文章被收录于专栏:前端开发随笔前端开发随笔

高阶组件(HOC)是 React 中用于复用组件逻辑的一种高级技巧。 高阶组件只提供逻辑代码 视图代码会做为参数传递给高阶组件进行渲染

举例

编写高阶组件获取浏览器窗口的x,y坐标

请添加图片描述
请添加图片描述

withMouse是高阶组件 Position是视图代码

代码语言:javascript
复制
import React, { Component } from 'react';
// withMouse 只提供逻辑代码
// WrappendComponent为Dom参数进行渲染
function withMouse(WrappendComponent) {
    class Mouse extends Component {
        constructor(props) {
            super(props);
            this.state = {
                x: 0,
                y: 0
            }
        }
        handleMouseMove = e => {
            this.setState({
                x: e.clientX,
                y: e.clientY
            })
        }
        componentDidMount() {
            window.addEventListener('mousemove', this.handleMouseMove)
        }
        componentWillUnmount() {
            window.removeEventListener('mousemove', this.handleMouseMove)
        }
        render() {
            return <WrappendComponent {...this.state} /> //{...this.props}可传递父组件props
        }
    }
    return Mouse
}

// 视图
const Position = props => {
    return <p>x:{props.x} y:{props.y}</p>
}
//将视图做为参数传递
export default withMouse(Position)
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-10-22 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 举例
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档