day03--react中对state的理解

server/2025/1/15 21:48:40/

一、react中的state

1.state是组件对象最重要的属性,值是对象(可以包含多个key-value的组合)
2.组件被称为“状态机”,通过更新组件的state来更新对应的页面显示(重新渲染组件)
注意:
(1)组件中的render方法中的this为组件实例对象
(2)组件自定义的方法中this为undefined,如何解决?
a.强制绑定this:通过函数对象的bind()
b.箭头函数
(3) 状态数据,不能直接修改或更新。

函数式组件:this为undefined

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>hello_react</title>
</head><body><!-- 准备好一个容器 --><div id="test"></div><!-- 引入react核心库 --><script type="text/javascript" src="/react-development.js"></script><!-- 引入react-dom,用于支持react操作DOM --><script type="text/javascript" src="/react-dom-development.js"></script><!-- 引入babel,用于将jsx转为js --><script type="text/javascript" src="/babel.min.js"></script><script type="text/babel">javascript">// 1.创建函数式组件function Demo() {console.log(this);//undefinedreturn <h2>我是用函数定义的组件</h2>}// 2.渲染组件到页面ReactDOM.render(<Demo />, document.getElementById('test'))/*** 执行了ReactDOM.render(<MyComponent/>.....)之后,发生了什么?* 1.React解析组件标签,找到MyComponent组件。* 2.发现组件是使用函数定义的,随后调用该函数,将返回的虚拟DOM转为真实DOM,随后呈现在页面中。* */</script>
</body></html>

类式组件

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>hello_react</title>
</head><body><!-- 准备好一个容器 --><div id="test"></div><!-- 引入react核心库 --><script type="text/javascript" src="/react-development.js"></script><!-- 引入react-dom,用于支持react操作DOM --><script type="text/javascript" src="/react-dom-development.js"></script><!-- 引入babel,用于将jsx转为js --><script type="text/javascript" src="/babel.min.js"></script><script type="text/babel">javascript">// 1.创建类式组件class MyComponent extends React.Component {render() {console.log(this);// render是放在哪里的?MyComponent的原型对象上,供实例使用。// render()中的this指向的是MyComponent组件实例对象return <h2>我是用函数定义的组件</h2>}}// 2.渲染组件到页面ReactDOM.render(<MyComponent/>,document.getElementById('test'))/*** 执行了ReactDOM.render(<MyComponent/>.....)之后,发生了什么?* 1.React解析组件标签,找到MyComponent组件。* 2.发现组件是使用类定义的,随后new出来该类的实例,并通过该实例调用原型链上的render方法* 3.将render返回的虚拟DOM转为真实DOM,随后呈现在页面中。*/</script>
</body></html>

类式组件的this
在这里插入图片描述


http://www.ppmy.cn/server/19078.html

相关文章

2024 OceanBase 开发者大会:OceanBase 4.3正式发布,打造近PB级实时分析数据库

4月20日&#xff0c;2024 OceanBase开发者大会盛大召开&#xff0c;吸引了50余位业界知名的数据库专家和爱好者&#xff0c;以及来自全国各地的近600名开发者齐聚一堂。他们围绕一体化、多模、TP与AP融合等前沿技术趋势展开深入讨论&#xff0c;分享场景探索的经验和最佳实践&a…

相亲交友APP小程序H5系统婚恋交友社交软件开发语音视频聊天平台定制开发

产品亮点 随着移动互联网的到来&#xff0c;人们的交友方式也呈现了更多新鲜的方式&#xff0c;很多人通过手机app结交了更多的新朋友。当然个例是不能代表整体的&#xff0c;仍然有着很大的一部分的人不知道如何交友&#xff0c;对于交友更是一窍不通&#xff0c;面对这样广阔…

裸金属服务器使用效果好吗

在当今的数字化时代&#xff0c;信息技术的飞速发展&#xff0c;云计算技术已经成为企业信息化建设的重要基石。在众多计算资源中&#xff0c;裸金属和云服务器是两种主流的服务模式&#xff0c;它们各有千秋&#xff0c;为不同的用户需求提供了适合的解决方案。而裸金属服务器…

深度学习运算:CUDA 编程简介

一、说明 如今&#xff0c;当我们谈论深度学习时&#xff0c;通常会将其实现与利用 GPU 来提高性能联系起来。GPU&#xff08;图形处理单元&#xff09;最初设计用于加速图像、2D 和 3D 图形的渲染。然而&#xff0c;由于它们能够执行许多并行操作&#xff0c;因此它们的实用性…

Blender基础操作

1.移动物体&#xff1a; 选中一个物体&#xff0c;按G&#xff0c;之后可以任意移动 若再按X&#xff0c;则只沿X轴移动&#xff0c;同理可按Y与Z 2.旋转物体&#xff1a; 选中一个物体&#xff0c;按R&#xff0c;之后可以任意旋转 若再按X&#xff0c;则只绕X轴旋转&…

适用于Windows和Mac的十大误删除数据恢复软件

数据恢复是从辅助存储或可移动文件中找回丢失、删除或损坏的数据的过程。数据丢失的原因有很多。因此&#xff0c;有必要恢复已删除的数据。有各种可用的软件工具&#xff0c;使用户能够恢复任何类型的已删除数据。但是&#xff0c;任何数据恢复都有四个主要阶段。他们正在修复…

数据结构中的串(String):概念、操作和实际应用

目录 一.引言 二.串的定义 三. 串的抽象数据类型&#xff08;ADT&#xff09; 四. 串的存储结构 顺序存储结构 链式存储结构 五. 串模式的存储算法 KMP算法&#xff08;Knuth-Morris-Pratt算法&#xff09; 2.Brute-Force&#xff08;暴力匹配&#xff09;算法 3.Boy…

Elasticsearch知识点表格总结

最近其实有点忙&#xff0c;在主攻Django项目和go语言项目&#xff0c;所以只能利用下班晚上和周末总结一些知识点&#xff0c;因为最近的公司的项目没有用上Elasticsearch&#xff0c;所以总结一下&#xff0c;方便以后复习&#xff0c;以及以后面试会用上&#xff0c;不然过段…