react的3种组件
推荐阅读:https://www.jianshu.com/p/2726b8654989
1. createClass
已不推荐使用,这里不再多讲。但你仍需要了解它,因为你可能会接触到一些旧项目,或者一些旧的开源项目,这些项目大都采用createClass写法。
var AppComponent = React.createClass({
   componentDidMount: function(){
       // 一些逻辑
   },
  ……
  render:function(){
      return (
       <div> 返回值最外层必须是闭合标签  </div>
     )
   }
})
2. class组件
其实就是createClass的es6的写法。
import React from 'react';
class AppComponent extends React.Component { // 定义一个继承于react顶层Component的新组件AppComponent
constructor(props){
super(props) // super,调用父类构造函数改变this指向
}
render(){
return <div>
返回值最外层必须是闭合标签
</div>
}
}
3. stateless 组件
所谓stateless组件,也就是无状态组件。
这种react组件有一个特点,它没有生命周期方法,没有render方法,连state也没有,this也没有,也不需要实例化。
stateless组件本质是一个函数,它没有生命周期,也不需要实例化,没有this指向, 更轻盈,性能更加好。
这种组件是所有react组件中性能最好的组件类型。官方也推荐多用这种组件。
多用作纯展示的组件使用。
const AppComponent = (props) =>{
   // 一些逻辑
   return <div>
    这是一个干净纯洁的stateless组件
   </div>
}
配合useState使用
import {useState} from 'react';
const AppComponent = (props) =>{
    const initState = {name: 'test', age: 23}
    const [myState, setMyState] = useState(initState);
   // 一些逻辑
   return <div onClick={setMyState={name: 'haha'}}>
        {myState.name}
     {myState.age}
   </div>
}
react的3种组件的更多相关文章
- React的几种组件
		一.函数组件 该函数在React中是一个有效的组件,可以接收唯一带有数据的props(代表属性)对象,并返回一个React元素.函数式组件要特别注意,组件名称首字母一定要大写.这种方式也成为无状态组件 ... 
- react之四种组件中DOM样式设置方式
		1.行内样式 想给虚拟dom添加行内样式,需要使用表达式传入样式对象的方式来实现 行内样式需要写入一个样式对象,而这个样式对象的位置可以放在很多地方 例如:render函数里.组件原型上.外链js文件 ... 
- React和Vue的组件更新比较
		p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 24.0px "Helvetica Neue"; color: #404040 } p. ... 
- React的第二种使用方法----脚手架方式
		一.React的第二种使用方法-----脚手架 1.前提:Node.js >8.10 2.下载全局脚手架工具 npm i -g create-react-app 3.运行全局脚手架工具,创 ... 
- react实战系列 —— react 的第一个组件
		react 的第一个组件 写了 react 有一个半月,现在又有半个月没写了,感觉对其仍旧比较陌生. 本文分两部分,首先聊一下 react 的相关概念,然后不使用任何语法糖(包括 jsx)或可能隐藏底 ... 
- 【React】学习笔记(一)——React入门、面向组件编程、函数柯里化
		课程原视频:https://www.bilibili.com/video/BV1wy4y1D7JT?p=2&spm_id_from=pageDriver 目录 一.React 概述 1.1.R ... 
- react native之组织组件
		这些组件包括<TabView>,<NavigatorView>和<ListView>,他们实现了手机端最常用的交互和导航.你会发现这些组件在实际的项目中会非常有用. ... 
- reactjs-swiper  react轮播图组件基于swiper
		react轮播图组件基于swiper demo地址:http://reactjs-ui.github.io/reactjs-swiper/simple.html 1. 下载安装 npm install ... 
- React Native之倒计时组件的实现(ios android)
		React Native之倒计时组件的实现(ios android) 一,需求分析 1,app需实现类似于淘宝的活动倒计时,并在倒计时结束时,活动也结束. 2,实现订单倒计时,并在倒计时结束时,订单关 ... 
随机推荐
- Golang slice和map的申明和初始化
			1 前言 仅供记录使用. 2 代码 /** * @Author: FB * @Description: * @File: SliceMapInit.go * @Version: 1.0.0 * @Da ... 
- .python3基础之“术语表(1)”
			1.注释: 行首有一特殊标志符号运行时告知编程忽略此行:使代码更易于阅读. 例如: #这是一个注释 print("hello world") #print() 方法用于打印输出,p ... 
- vue动态循环出的多个select出现过的变为disabled
			<template> <div class="artcle"> <el-form label-width="100px" :mod ... 
- day 07 预科
			目录 异常处理 字符串内置方法 1.索引取值 2.切片 3.成员运算 4.for循环 5.len() 6.strip(): 默认去掉两端空格 7.lsteip()/rstrip(): 去左端/右端 空 ... 
- 小程序的openid和公众号的openid是否一致
			早期的产品只用了公众号,没有注册开放平台(没有unionid).然后现在需要上线小程序,这种情况下,企业是同一个企业的,但是公众号的openid和小程序的openid是否一致呢? 我来回答你这个问题: ... 
- 【linux-command】Chrome安装linux-command插件
			一.linux-command是什么 550 多个 Linux 命令,内容包含 Linux 命令手册.详解.学习,值得收藏的 Linux 命令速查手册.Githb地址: https://github. ... 
- 【Docker】iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 8480 -j DNAT --to-destination 172.17.0.2:80 ! -i docker0: iptables: No chain/target/match by that name
			启动容器的时候,出现如下错误: Error response / --dport -j DNAT --to-destination ! -i docker0: iptables: No chain/t ... 
- linux设备驱动程序-i2c(1):i2c总线的添加与实现
			linux设备驱动程序-i2c(1):i2c总线的添加与实现 (基于4.14内核版本) 在上一章节linux设备驱动程序-i2c(0)-i2c设备驱动源码实现中,我们演示了i2c设备驱动程序的源码实现 ... 
- mysql备份脚本(基础版)
			#!/bin/bash #authors misery # BAK_DIR=/home/web_code1/backup/mysql_backup/`date +%Y-%m-%d` MYSQL_CMD ... 
- python测试开发django-58.MySQL server has gone away错误的解决办法
			前言 使用django执行sql相关操作的时候,出现一个"MySQL server has gone away"错误,后来查了下是sql执行过程中,导入的文件较大时候,会出现这个异 ... 
