美文网首页
React中如何创建通用组件

React中如何创建通用组件

作者: ChrysAwesome | 来源:发表于2017-09-15 02:48 被阅读36次

在react中写弹出层,警告框,tooltips等类似组件时,我们希望这些组件可以不依赖任何组件而独自存在。那么如何可以让这些组件在render的时候不存放在我们主组件中,而是单独存放在自己的dom中呢?代码如下

import React from 'react';
import ReactDOM from'react-dom';
import PropTypes from 'prop-types';

const createContainer = (DecoratorsComponent) => {
    class Container extends React.Component {

        constructor(props) {
            super(props);
            this.div = null;
        }

        static propTypes = {
            visible: PropTypes.bool
        }

        static defaultProps = {
            visible: false
        }

        removeMask = () => {
            this.div && ReactDOM.unmountComponentAtNode(this.div);
            document.body.removeChild(this.div);
            this.div=null;
        }

        componentWillReceiveProps(nextProps) {
            if (!this.div && nextProps.visible) {
                this.div = document.createElement('div');
                document.body.appendChild(this.div);
            }
            this.div && ReactDOM.render(
                <DecoratorsComponent {...nextProps} removeMask={this.removeMask}>{nextProps.children}</DecoratorsComponent>, this.div);
        }


        render() {
            return null;
        }
    }
    return Container;
}

export default createContainer;

这个高阶组件的写法用到装饰者,如果不适应可以改用function形式

相关文章

  • React中如何创建通用组件

    在react中写弹出层,警告框,tooltips等类似组件时,我们希望这些组件可以不依赖任何组件而独自存在。那么如...

  • 如何创建React组件并发布到npm?

    实现步骤: 创建React组件项目; 创建测试项目并引用组件; 发布React组件到npm上; 一、创建React...

  • 深入浅出React和Redux学习笔记(一)

    React新的前端思维方式 React的介绍: 如何初始化一个React项目; 如何创建一个React组件; Re...

  • (React启蒙)理解React组件

    本文将首先讲述如何通过React nodes创建基础的React组件,然后进一步剖析React组件内部的点滴,包括...

  • 6.Conditional Rendering(条件渲染)

    React版本:15.4.2**翻译:xiyoki ** 在React中,你可以创建许多不同的组件,这些组件封装了...

  • NT 技术周刊-0902

    React通用组件管理源码剖析[原创] 摘要如何有效编译、发布组件,同时组织好组件之间依赖关联是这篇文章要解决的问...

  • React中创建组件

    第一种、使用构造函数来创建组件,如果要接收外界传递的数据,需要在构造函数的参数列表中使用props来接收,必须要向...

  • react从0到1的探索记录02

    9、在react中如何创建组件 ES6中class关键字的作用 class关键字中构造器constructor的了...

  • React学习笔记二-组件创建

    React中创建组件 第一种 - 创建组件的方式 使用构造函数来创建组件,如果要接收外界传递的数据,需要在构造函数...

  • react中父组件调用子组件的方法

    react中父组件调用子组件的方法 最近项目中用到了react,需要在父组件中调用子组件的某个方法,那么如何获取到...

网友评论

      本文标题:React中如何创建通用组件

      本文链接:https://www.haomeiwen.com/subject/bunjsxtx.html