介绍有状态组件和无状态组件的区别|学习笔记

简介: 快速学习介绍有状态组件和无状态组件的区别

开发者学堂课程【React 入门与实战介绍有状态组件和无状态组件的区别】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/585/detail/8104


介绍有状态组件和无状态组件的区别


一、两种创建组件方式的对比

注意:使用 class 关键字创建的组件,有自己的私有数据(this.state)和生命周期函数;

注意:使用 function 创建的组件,只有 props ,没有自己的私有数据和生命周期函数;

1、什么是无状态组件

用构造函数创建出来的组件:叫做"无状态组件” 【无状态组件今后用的不多】

2、什么是有状态组件

class 关键字创建出来的组件:叫做“有状态组件”【今后用的最多】

3、什么情况下使用有状态组件?什么情况下使用无状态组件?

1)如果一个组件需要有自己的私有数据,则推荐使用: class 创建的有状态组件;

2)如果一个组件不需要有私有的数据,则推荐使用:无状态组件;

3React 官方:无状态组件,由于没有自己的 state 和生命周期函数,所以运行效率会比有状态组件稍微高—些;

有状态组件和无状态组件之间的本质区别就是:有无 state 属性和有无生命周期函数;

4. 组件中的 props state/data 之间的区别:

1Props 中的数据都是外界传递过来的;

父组件或者上层组件传递给它的,都是外界的。

2state/data 中的数据,都是组件私有的;(通过 Ajax 获取回来的数据,一般都是私有数据);

3props 中的数据都是只读的;不能重新赋值;

4state/data 中的数据,都是可读可写的;

如果用到 props 则数据是外界传递来的,用 state 则是私有的。

相关文章
|
10月前
|
缓存 安全 网络安全
解锁网站速度与安全:CDN 使用指南及免费平台推荐
在互联网时代,网站的速度和安全性至关重要。CDN(内容分发网络)通过全球缓存节点提升访问速度、降低延迟,并提供安全防护。本文详解CDN的作用与适用场景,推荐几款免费CDN平台,如阿里云、鸟盾安全CDN等,助您选择合适的CDN服务,保障网站性能与安全。
1121 94
|
传感器 自动驾驶 安全
无人驾驶汽车对人民的出行方式和生活方式产生了深远的影响
无人驾驶汽车对人民的出行方式和生活方式产生了深远的影响
无人驾驶汽车对人民的出行方式和生活方式产生了深远的影响
|
机器学习/深度学习 人工智能 算法
强化学习在游戏AI中的应用,从基本原理、优势、应用场景到具体实现方法,以及Python在其中的作用
本文探讨了强化学习在游戏AI中的应用,从基本原理、优势、应用场景到具体实现方法,以及Python在其中的作用,通过案例分析展示了其潜力,并讨论了面临的挑战及未来发展趋势。强化学习正为游戏AI带来新的可能性。
1114 4
|
12月前
|
人工智能 C语言
一则有意思的AI错误
本文记录了豆包AI在回答关于C语言内存分配问题时的错误过程。首次询问时,AI给出了错误的回答;经过两次追问和纠正后,AI才给出正确的答案。文中附有提问过程的完整截图和相关代码,分析了问题的原因,并探讨了AI在处理这类问题时的局限性。
|
数据采集 存储 数据挖掘
使用Python读取Excel数据
本文介绍了如何使用Python的`pandas`库读取和操作Excel文件。首先,需要安装`pandas`和`openpyxl`库。接着,通过`read_excel`函数读取Excel数据,并展示了读取特定工作表、查看数据以及计算平均值等操作。此外,还介绍了选择特定列、筛选数据和数据清洗等常用操作。`pandas`是一个强大且易用的工具,适用于日常数据处理工作。
|
开发框架 前端开发 中间件
聊聊 ASP.NET Core 中间件(二):中间件和筛选器的区别
聊聊 ASP.NET Core 中间件(二):中间件和筛选器的区别
337 1
|
SQL 存储 Java
应用成本低出 N 倍的数据分析引擎 esProc SPL
我们介绍的 esProc SPL 是一个数据分析引擎,具备 4 个主要特点:低代码、高性能、轻量级、全功能。SPL 不仅写得简单,跑得也更快,既可以独立使用还能与应用集成嵌入,同时适用于多种应用场景。使用 esProc SPL 实现数据分析业务,整体应用成本将比以 SQL 为代表的传统技术低出几倍。
|
数据可视化 JavaScript 前端开发
Solidity编码规范
1、命名规范 避免使用 小写的L,大写的I,大写的O 应该避免在命名中单独出现,因为很容易产生混淆。 合约、库、事件、枚举及结构体命名——大驼峰 合约、库、事件及结构体命名应该使用单词首字母大写的方式。 比如:SimpleToken, SmartBank, CertificateHashRepository,Player。 函数、参数、变量及修饰器 函数、参数、变量及修饰器应该使用首单词小写后面单词大写的方式,
Solidity编码规范
|
存储 C语言 数据安全/隐私保护
C语言实现简易银行账户管理系统
C语言实现简易银行账户管理系统
580 1
|
缓存 Linux
百度搜索:蓝易云【Centos报错:[Errno 12] Cannot allocate memory怎么解决?】
请注意,如果内存不足的问题持续出现,建议考虑升级系统的物理内存或优化系统配置,以确保系统具有足够的资源来运行应用程序和服务。
278 0

热门文章

最新文章