React源码阅读--React.createElement和ReactElement

文章目录

  • React.createElement
    • 源码
  • ReactElement

React.createElement

在React中,JSX语法糖都会被转换为React.createElement的形式。

例如:

<div id='div'>hellodiv>

会被转换为:

React.createElement('div', {
   id: 'div'}, 'hello');

这个方法是React对象的一个方法,在源码目录下的React.js中,可以看见React对象内包含了这个方法。

React源码阅读--React.createElement和ReactElement_第1张图片

源码

而这个方法真正的定义则是在ReactElement.js文件内。

export function createElement(type, config, children) {
   
  let propName;

  // Reserved names are extracted
  const props = {
   };

  let key = null;
  let ref = null;
  let self = null;
  let source = null;

  if (config != null) {
   
    if (hasValidRef(config)) {
   
      ref = config.ref;
    }
    if (hasValidKey(config)) {
   
      key = '' + config.key;
    }

    self = config.__self === undefined ? null : config.__self;
    source = config.__source === undefined ? null : config.__source;
    // Remaining properties are added to a new props object
    for (propName in config) {
   
      if (
        hasOwnProperty.call(config, propName) &&
        

你可能感兴趣的:(React,前端,React,createElement,ReactElement)