第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

React.js:如何選擇合適的狀態(tài)結(jié)構(gòu)

標(biāo)簽:
JavaScript React.JS

如果你喜欢我的文章,可以给我买杯咖啡或分享这篇文章哦 :)

Image description

……

在这篇文章中,我们将探讨在我们选择react.js项目的状态管理结构时的重要性。

……

选个国家结构

当你在写一个React组件时,你需要决定这个组件要使用多少个状态,以及如何使用它们。例如,当我们编写一个组件时,使用了3个状态并且组件工作正常,但你意识到你可以用这3个状态来实现同样的功能。所以,你需要确定一个合适的状态结构

……

我会谈一谈5个原则,帮助你在选择国家结构时做出更佳的决定。

1. 整理相关状态变量

想想电脑游戏里的一个角色,这个角色可以在x和y坐标上移动。所以,如果你要将这两个x和y值写成状态,该怎么做?

  • 不好的方法

图片

  • 一个更好的方法是:

图片描述:一只坐在窗台上的猫

技术上来说,你可以使用这两种方法中的任意一种。但是, ,如果你总是同时更新两个或以上的状态值,考虑将它们合并成一个状态值。

如果你不知道需要多少个状态,可以将它们通过对象或者数组来组织。

此处省略部分内容

2. 避免状态矛盾

想想一个消息应用。你知道当你发送消息时会经历两个不同的阶段。第一个阶段是“消息正在发送中”,第二个阶段是“消息已发送成功”。那么,如果我们把这两个状态定义为两个不同的状态,真和假(比如发送成功和发送失败),你会首先想到什么呢?

  • 不好的做法(可能引起冲突)

图片描述

由于 isSending 和 isSent 不应同时为真,最好用一个状态变量来替换这两个标志,该状态变量可以取三种有效状态值:'打字中', '发送中', 和 '已发送'

  • 一个更棒的方法是

图片


避免:冗余状态

当你选择组件的状态结构时,如果可以基于组件的props或状态中的变量计算出一些信息, 则不要将这些信息保存在组件的状态里。

  • 不好的方法:

这是一张图片

  • 更好的做法

图片说明

当你调用 setFirstName 或 setLastName 方法时,会引发一次重新渲染,然后新的完整名称将根据最新数据重新计算。


总结

良好的状态结构可以让你的组件更容易修改和调试。在这篇文章里,我提到了选择状态结构时应该考虑的3个原则。可能还有其他的原则。如果你想,也可以在评论区讨论这些原则。

點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺(jué)得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫(xiě)下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開(kāi)微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消