首页 > 其他分享 >React组件基础

React组件基础

时间:2022-11-03 23:24:02浏览次数:54  
标签:状态 函数 render 基础 React state 组件

1.组件基本介绍

  • 组件是React中最基本的内容,使用React就是在使用组件

  • 组件表示页面中的部分功能

  • 多个组件可以实现完整的页面功能

  • 组件特点:可复用,独立,可组合

2.React创建组件的俩种方式

2.1 函数组件

  • 使用JS的函数或者箭头函数创建的组件
  • 为了区分普通标签,函数组件的名称必须大写字母开头

  • 函数组件必须有返回值,表示该组件的结构

  • 如果返回值为null,表示不渲染任何内容

1. 使用函数创建组件

function Hello () {
    return (
    	<div>这是我的函数组件</div>
    )
}

2.使用箭头函数创建组件

const Hello = () => <div>这是一个函数组件</div>

3. 使用组件

ReactDOM.render(<Hello />, document.getElementById('root'))

2.2类组件

  • 使用ES6的class语法创建组件
  • 约定1:类组件的名称必须是大写字母开头

    约定2:类组件应该继承React.Component父类,从而可以使用父类中提供的方法或者属性

    约定3:类组件必须提供render方法

    约定4:render方法必须有返回值,表示该组件的结构

1.定义组件

class Hello extends React.Component {
  render() {
    return <div>这是一个类组件</div>
  }
}

2.使用组件

ReactDOM.render(<Hello />, document.getElementById('root'))  

3.有状态组件和无状态组件

3.1 有状态组件

类组件又叫做有状态组件,类组件可以自己提供数据,组件内部的状态(数据如果发生了改变,内容会自动的更新)。

3.2 无状态组件

函数组件又叫做无状态组件, 函数组件是不能自己提供数据的。

3.3 状态

状态(state)即组件的私有数据,当组件的状态发生了改变,页面结构也就发生了改变。

  • 函数组件是没有状态的,只负责页面的展示(静态,不会发生变化)性能比较高
  • 类组件有自己的状态,负责更新UI,只要类组件的数据发生了改变,UI就会发生更新。
  • 在复杂的项目中,一般都是由函数组件和类组件共同配合来完成的

3.4 类组件的状态

  • 状态state即数据,是组件内部的私有数据,只有在组件内部可以使用

  • state的值是一个对象,表示一个组件中可以有多个数据

 state的基本使用:

class Hello extends React.Component {
  state = {
    msg: 'hello react'
  }
  render() {
    return <div>state中的数据--{this.state.msg}</div>
  }
}

  

标签:状态,函数,render,基础,React,state,组件
From: https://www.cnblogs.com/lijingru/p/16856218.html

相关文章

  • [架构之路-59]:目标系统 - 平台软件 - 基础中间件 - POSIX(可移植操作系统接口)与标准库
    目录​​第1章 POSIX(可移植操作系统接口)概述​​​​1.1什么是POSIX​​​​1.2 发布者-IEEE​​​​1.3标准的下载位置​​​​1.4标准的起源​​​​1.5 谁遵守这个......
  • 浅谈自定义组件样式覆盖的方式
    简介有时候,基础组件提供的样式不够,需要在不同模块中使用不同的样式,而且差异大到无法通过一两个属性完成。比如组件的颜色,最常见的有三个区域(文字/图标、背景、边框,常用但......
  • 手工安装配置Cloudera组件-Hadoop
    ClouderaManager安装经常出现错误,而且一点小错误,常常需要整个过程重来,不熟悉其内部过程,错误常常无从下手,所有决定yum安装手工配置一个测试集群,顺便尝试下牛叉的Impala。安......
  • js基础01
    ExerciseTest01严格检查模式strict'usestrict';//预防js的随意性导致产生的一些问题,必须放在第一行leti=1;//局部变量建议都用let定义数据类型数......
  • 狂神说java基础——面向对象编程
    面向对象编程(oop)1、什么是面向对象(00)面向过程:线性思维面向对象:分类思维​ 本质:以类的方式组织代码,以对象的形式阻止(封装)数据三大特性:封装,继承,多态2、回顾方......
  • 数字影视技术基础回顾
    数字影视技术基础回顾前言昨天晚上看《元气满满的哥哥》,下意识地用镜头去欣赏综艺界面的拍摄手法,于是今天顺便回顾一下大二学的数字影视技术基础。本来以为内容没多少的,结果......
  • SYSU-SSE 3D游戏编程与设计 学习笔记(3)--游戏对象与图形基础
    前言中山大学软件工程学院3D游戏编程与设计课程学习记录博客游戏代码:游戏代码基本操作演练在AssetStore上下载一个天空盒资源并在PackageManager导入在......
  • Java基础面试题整理
    一、何为面向对象面向对象简单来说就是一种编程方式,也可以说是一种思维方式,面向对象会注重一件事情的参与者(对象)、以及各自需要做什么动作。而面向过程则是更注重一件事情......
  • 09-组件篇之Zookeeper(2)_ev
                                                     ......
  • Docker基础和常用命令
    Docker基础和常用命令一,Docker简介1.1,什么是DockerDocker使用Google公司推出的Go语言进行开发实现,基于Linux内核的cgroup,namespace,以及OverlayFS类的Unio......