组件、ReactElement、组件实例的区别及组件的渲染过程

一、组件、ReactElement、组件实例的区别
  1. 概念上的区别
  • 组件是一个函数或者一个类,它决定了如何把数据变成视图。
  • ReactElement只是一个普通对象,它表述了组件实例或者DOM节点。
  • 组件实例则是组件类的实例化对象。
  1. 代码演示
    import React from 'react;
    import { render } from 'react-dom;
    import App from './src/App';

    const componentInstance = render(<App />, document.querySelector('root'));
    
    console.log('组件、ReactElement、组件实例依次如下:');
    console.log(App);
    console.log(<App />);
    console.log(componentInstance);
    

二、React组件的渲染过程

当react遇到表示组件的ReactElement时,它会给这个ReactElement表示的组件一些props(有时候也包括context),然后问该组件渲染的ReactElement是什么。如果渲染的仍然是表示组件的ReactElement,那么将会一直问下去,直到了解所有组件要渲染的DOM元素为止。此时,React就可以用react-dom或者react-native这样的渲染模块来执行渲染了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 原教程内容详见精益 React 学习指南,这只是我在学习过程中的一些阅读笔记,个人觉得该教程讲解深入浅出,比目前大...
    leonaxiong阅读 2,860评论 1 18
  • 深入JSX date:20170412笔记原文其实JSX是React.createElement(componen...
    gaoer1938阅读 8,104评论 2 35
  • react 基本概念解析 react 的组件声明周期 react 高阶组件,context, redux 等高级...
    南航阅读 1,088评论 0 1
  • 做React需要会什么? react的功能其实很单一,主要负责渲染的功能,现有的框架,比如angular是一个大而...
    苍都阅读 14,812评论 1 139
  • 《夏末秋初》 春天已经枯萎 我还没有撒下种子 泥土醒来的时候 除了天赐的眼泪 我的地是空无的 可以预料 贫穷一定会...
    凡尘一粒沙阿强阅读 555评论 0 2