| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> JavaScript知识库 -> [React 基础系列] 状态 & 状态更新 & 生命周期方法 -> 正文阅读 |
|
[JavaScript知识库][React 基础系列] 状态 & 状态更新 & 生命周期方法 |
[React 基础系列] 状态 & 状态更新 & 生命周期方法这一期复习一下 状态(state) 和 生命周期(lifecycle),这一节主要针对的内容是 类组件 中的状态与生命周期,钩子函数(hooks) 中的实现会放在 hooks 中学习。 通过这章的学习,你应该能学会:
之前复习过的内容有: 学习案例下载地址: 状态状态(state) 可以用来存放控制组件内的数据变化的变量,如表单内的值就可以存放在状态中去管理。以业务中比较常见的表单逻辑为例,表单中的输入值就很适合放到状态中去管理。 下面模拟一个电话号码为
页面的渲染效果看起来如下: 复习一下 props 的相关知识, 现在最基础的一个表单组件已经写好了,只是现在这个情况下,因为没有实现对应的事件监听函数,所以,state 中的值是无法被改变的: ![]() 同时,打开浏览器的 console 也会出现下列的报错信息,提示要么添加事件管理,要么将 下一步,就通过添加事件去实现对状态的修改,再去简略的讲一下生命周期机制。 状态更新 - onChange这里会通过绑定时间的方式去更新状态,更新状态的实现是通过 React 内置的函数: 事件机制的实现如下:
实现 handler 后即可更新状态:
在实现了状态更新后,就可以联系一个与状态更新有关的生命周期方法——componentDidUpdate。 注*:React 的设计理念是状态的不可变性,所以默认所有的状态变更,包括捕获状态变更都是通过 生命周期方法下面列举的生命周期方法,相对而言使用的比较频繁的生命周期函数。另外,生命周期函数的调用 不能 使用箭头函数。 constructor也就是构造函数,通常用来初始化状态以及触发一些副作用(调用其他的函数)。如果不需要在构造函数内触发副作用,只需要初始化状态的情况下,也可以直接通过申明的方法去实现,如:
上面的代码在构造函数内实现,是这样的写法:
注,不调用 renderrender 也是生命周期函数,它负责渲染整个页面。 页面在挂在过程中,调用完了 constructor 去初始化状态后,就会调用 render 去渲染页面。 componentDidUpdate在函数更新是调用,这里可以通过参数显示之前的 props、state 和 snapshot,同时也可以通过 这个函数经常会被用来触发副作用,例如说当状态从未登录改为登录是,就可以在 componentDidUpdate 中去调用其他的 API:如获取用户信息、获取登陆用户才能够访问的信息,等。 这里就通过在命令行输出展示一下 componentDidUpdate 的使用方法,代码如下:
触发效果如下: ![]() 可以看到, componentDidUpdate 中也可以通过调用
就会导致无限更新的问题: componentDidMountcomponentDidMount 是一个使用频率也很高的函数,它在页面挂载之后就会立刻被调用,可以在 componentDidMount 函数中触发副作用,即,调用 API 去更新状态。 这里会在 componentDidMount 中调用 setTimeout 去模拟 API 调用发生的延迟状态,随后在 setTimeout 中进行状态更新。
在页面渲染(这里就是页面被刷新,模拟一下刚刚打开页面的情况)之后,componentDidMount 会立刻被调用,随后大概在 3 秒中后,电话号码就会从 ![]() 总结这章内容主要讲了如何初始化以及在不同的情况下去更新状态,同时简单的讲了一下几个常见的生命周期方法,以及生命周期方法的使用场景。 通过完成这一部分的学习,已经可以实现简单的业务功能了。 |
|
JavaScript知识库 最新文章 |
ES6的相关知识点 |
react 函数式组件 & react其他一些总结 |
Vue基础超详细 |
前端JS也可以连点成线(Vue中运用 AntVG6) |
Vue事件处理的基本使用 |
Vue后台项目的记录 (一) |
前后端分离vue跨域,devServer配置proxy代理 |
TypeScript |
初识vuex |
vue项目安装包指令收集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年3日历 | -2025/3/4 8:16:02- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |