react组件的两种方式:函数定义,类定义

在定义一个组件之前,首先要明白一点:react元素(jsx)是react组件的最基本的组成单位

组件要求:
1,为了和react元素进行区分,组件名字首必须大写
2、组件定以后,可以像jsx元素一样使用

首先要导入React 和 ReactDOM
import React from 'react';
import ReactDOM from 'react-dom';

第一种 函数定义一个组件:

function Ws(){return <p>我是一个函数定义的组件</p>;}ReactDOM.render(<Ws/>,window.root);

定义 好的<Ws/>是<Ws></Ws>的简写 就是一个虚拟dom,是一个对象类型,里面包含定义组件时的一些值。

当使用函数定义好一个组件,使用ReactDOM.render函数将 (组件 :虚拟dom)转成真实的dom,并插入到页面。

第二中 使用类定义一个组件:

使用class定义组件的时候,首先要先从react中解构出React.Component,并继承它

import React {Component} from 'react';//解构React.Component
class He extends Component{ //继承Component,Component相当于React.Component  render(){     return <div>我是class定义的一个组件</div> } }ReactDOM.render(<He/>,window.root);

当组件是一个类定义的时候,执行ReactDOM.render函数的原理:
1、首先找到组件对应的类,并new了这个类的一个实例
2、通过实例找到原型上的render函数,让render执行
3、ReactDOM.render接收到原型上render函数retrun的虚拟的dom
4、将虚拟dom转换成真实dom,插入到页面中

转载于:https://www.cnblogs.com/xinxinxiangrong7/p/9634330.html

使用react定义组件的两种方式相关推荐

  1. React类组件的两种写法

    react中类组件的两种写法: 要点:•类组件必须要继承React.Component •类组件中的render()方法,返回值是一个jsx // 方式一: import React from 're ...

  2. Vue渲染组件的两种方式

    <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8" ...

  3. java jframe添加面板_JFrame添加组件的两种方式

    对JFrame添加组件有两种方式:1) 用getContentPane()方法获得JFrame的内容面板,再对其加入组件:frame.getContentPane().add(childCompont ...

  4. vue 在线编辑excel表格(原生和使用组件的两种方式)

    vue 在线编辑excel表格(原生和使用组件的两种方式) top表头和left表头格式的表格 <template><div><!-- 用组件写的编辑表格 -->& ...

  5. 定义字符串的两种方式

    定义字符串的两种方式 数组定义 char name[] = "answer" 指针定义 char *name = "answer" 比较 字符数组里的字符可以修 ...

  6. c语言向文件中写入字符串_C语言中定义字符串的两种方式及其比较

    先看如下代码: 以上用两种方式定义一个字符串: 1.定义一个char * 类型指针,指向字符串首字符首地址. 2.定义一个数组,数组里存放元素为字符串各个字符+'0',其中'0'为码0值,编译器会自动 ...

  7. 深入解析React创建组件的三种方式

    eact创建组件的三种方式: 1.函数式无状态组件 2.es5方式React.createClass组件 3.es6方式extends React.Component 三种创建方式的异同 1.函数式无 ...

  8. Spring定义Bean的两种方式:<bean>和@Bean

    前言: Spring中最重要的概念IOC和AOP,实际围绕的就是Bean的生成与使用. 什么叫做Bean呢?我们可以理解成对象,每一个你想交给Spring去托管的对象都可以称之为Bean. 今天通过S ...

  9. Qt Qml动态创建对象/组件的两种方式

    Qml动态创建对象有两种方式: a.使用Loader b.使用javaScript 1.Loader加载机制: 加载过程: 通过source,来加载qml文件. 通过sourceComponent,来 ...

  10. React创建组件的三种方式及其区别

    React推出后,出于不同的原因先后出现三种定义react组件的方式,殊途同归:具体的三种方式: 函数式定义的无状态组件 es5原生方式React.createClass定义的组件 es6形式的ext ...

最新文章

  1. Java2WSDL 和 WSDL2Java(Axis)
  2. 柑橘有了新农具:湖南30县农业主管与顶级专家共商“AIoT种柑橘”
  3. 【uoj#142】【UER #5】万圣节的南瓜灯 乱搞+并查集
  4. Emacs+hideif.el 隐藏预编译代码(或彩色显示预编译代码)
  5. 牛客 —— 湖南大学第十六届程序设计竞赛(重现赛)
  6. 程序员,别再无脑刷题了,这样学 Python,编程能力暴增!
  7. 许三多修路带给我们成功的启示
  8. 物流仿真在AGV调度方面应用案例
  9. Java机考题:基础编程机试题
  10. 使用eclipse进行debug
  11. 【转】推荐几本学习MySQL的好书-MySQL 深入的书籍
  12. 利用kali Linux破解WiFi密码
  13. 手把手教你搭建一个你自己的语音合成系统
  14. 百度地图坐标系统解析
  15. 对webkit-font-smoothing和-moz-osx-font-smoothing的理解
  16. 2021:不要在一件事上纠缠太久!
  17. 张量(一):张量基础
  18. 小司机带你学习单例模式的六种姿势!
  19. php毕业设计 基于php+mysql旅游景区景点购票系统毕业设计开题报告功能参考
  20. Android系统设置联系人头像教程

热门文章

  1. 项目中的每个层的理念是什么?
  2. java memcached delete_Memcached删除/Delete数据
  3. 【mybatisPlus】mybatis基本使用
  4. php案例之后台数据显示-- mysqli面向对象版(Object Oriented Programming = OOP)
  5. mysqld是服务,mysql是客户端
  6. 一文带你了解微信/支付宝支付的相关概念
  7. 开发服务器 安装 centos 8 无法进入图形安装界面 X startup failed falling back to text mode
  8. 1.6.PHP7.1 狐教程-【版本库客户端 git SourceTree安装配置使用】
  9. LNMPS PHP 团队开发 需要用到的相关工具(2017年11月更新)
  10. 只允许,同一域名下IFRAME,禁止直接访问页面