RubyLouvre/anu

View on GitHub
packages/render/dom/index.js

Summary

Maintainability
A
0 mins
Test Coverage
import { Children } from 'react-core/Children';
import { PropTypes } from 'react-core/PropTypes';
import { Component } from 'react-core/Component';
import { PureComponent } from 'react-core/PureComponent';
import { createRef, forwardRef } from 'react-core/createRef';
import { createPortal } from 'react-core/createPortal';
import { createContext } from 'react-core/createContext';
import { useState, useReducer, useEffect, useLayoutEffect, useCallback, useMemo, useRef, useContext, useImperativeHandle } from 'react-core/hooks';

import {
    createElement,
    cloneElement,
    isValidElement,
    createFactory
} from 'react-core/createElement';
import { Fragment, getWindow } from 'react-core/util';
import { lazy } from 'react-fiber/lazy';
import { Suspense } from 'react-fiber/Suspense';
import { memo } from "react-fiber/memo";

import { findDOMNode } from './findDOMNode';
import { DOMRenderer } from './DOMRenderer';
let win = getWindow();
let prevReact = win.React;
let React;
if (prevReact && prevReact.eventSystem) {
    React = prevReact; //解决引入多个
} else {
    let {
        render,
        eventSystem,
        unstable_renderSubtreeIntoContainer,
        unmountComponentAtNode
    } = DOMRenderer;

    React = win.React = win.ReactDOM = {
        //平台相关API
        eventSystem,
        findDOMNode,
        unmountComponentAtNode,
        unstable_renderSubtreeIntoContainer,
        //fiber底层API
        version: 'VERSION',
        render: render,
        hydrate: render,
        unstable_batchedUpdates: DOMRenderer.batchedUpdates,
        Fragment,
        PropTypes,
        Children,
        createPortal,
        createContext,
        memo,
        lazy,
        Suspense,
        Component,
        createRef,
        forwardRef,
        useState,
        useContext,
        useEffect,
        useLayoutEffect,
        useReducer,
        useCallback,
        useMemo,
        useRef,
        useImperativeHandle,
        createElement,
        cloneElement,
        PureComponent,
        isValidElement,
        createFactory
    };
}

export default React;