Skip to content

搞英语 → 看世界

翻译英文优质信息和名人推特

Menu
  • 首页
  • 作者列表
  • 独立博客
  • 专业媒体
  • 名人推特
  • 邮件列表
  • 关于本站
Menu

useState() 就是这么强大的钩子

Posted on 2022-05-30

1099303.png

因此,我开始写另一篇博文,先说明我在编码方面有多糟糕。然而,我的技能水平或缺乏技能水平正在提高,但是当他们基本上在 4-5 周前开始这一旅程时,人们能知道多少。不用说,这篇文章将反思

useState()

在反应。看看我在那里做了什么?是的,我很老套,但足够了解我是故意这样做的。哈。

这是一个我一开始无法理解的话题。即使现在在熨斗学校通过了我的代码挑战之后,我真的知道我在做什么或在说什么吗?希望答案是肯定的,并且您了解我的想法。现在对我来说确实更有意义,在组件中设置状态非常重要。起初我认为没关系,你可以在任何时候移动状态变量或 setter 函数。然而,知道在哪里放置状态是至关重要的,并且可以让您在编写代码时更轻松,尤其是当子组件不能直接将 props 传递给父组件时,除非通过回调函数。稍后会详细介绍组件。

在继续之前对 useState() 的简要说明。它只能在功能组件中使用。它还包含一个变量和一个更新变量的函数,我们可以根据我们正在处理的内容设置初始值。如果是表单,它将是一个空字符串,如果我们正在使用类似切换按钮的东西,我们可以使用布尔数据类型。同样,这完全取决于您要做什么,因此请始终谨慎行事,并确保您尝试做的事情是有意义的。

 const [state, setState] = useState(initialState);

我回顾了我们的一个实验室的一个例子,从应用程序组件中,有两个分开的分支,一个标题组件和一个用于渲染图像的容器组件(现在渲染什么并不重要)。请记住,在层次结构中,app 位于顶部,是父组件,而 header 和容器从 app 向下分支,它们是 app 的子组件。从这里开始,标题也分支到一个搜索栏组件,现在距离主要父级应用程序有 2 个级别。

在实验室示例中,我们必须将一些图像渲染到容器组件上,我们使用 fetch 请求来完成

useEffect() { fetch(\\url here) .then() .then() // }

内置在 React 中的钩子。一旦你完成了这项工作,其中一项可交付成果就是能够过滤搜索结果。理想情况下,您在容器中渲染图像,但是,您也可以在应用程序中渲染它们,然后从那里将数据作为道具移动到容器中。您将需要使用 useState() 来获取图像数据并将其传递。已经看到了这个钩子的复杂性。

现在记住搜索栏组件,嗯,它基本上位于层次结构的另一侧,在标题下,如果你还记得的话,孩子也不能将道具传递回父母或相邻的孩子组件。因为当用户输入搜索内容时会发生变化,我们需要为搜索创建一个状态。现在我们在哪里为搜索创建这个状态,可以让生活更简单一点,或者让我们做更多的工作。我会用我做的方式来解释它。我在应用程序中设置搜索的状态,因为从应用程序中,您可以将初始状态变量或函数发送给任何孩子。在这种特殊情况下,我们将变量作为道具发送到容器组件,因为在这个组件中,我们的所有数据都被渲染并且我们可以过滤结果。但是,该函数将更新对变量的更改,因此我们首先通过标题将其发送到搜索栏组件,因为我们必须尊重层次结构,作为道具。在搜索栏组件中,我们有一个表单。此表单将根据用户键入的内容进行相应更改,因此该函数将更改变量的初始状态,该变量已移动到层次结构树的另一端,并且只会显示搜索到的内容。

新手的解释相当冗长而复杂。主要的收获是 useState() 钩子的重要性以及它如何允许您更改组件的初始状态及其目标,或者该组件在整个应用程序中的用途。在我的示例中,搜索栏和容器是不同分支下的两个独立组件。它们不能直接通信,而是通过 useState() 间接通信。

原文: https://dev.to/jaythoven/usestate-is-just-a-powerful-hook-5fcb

本站文章系自动翻译,站长会周期检查,如果有不当内容,请点此留言,非常感谢。
  • Abhinav
  • Abigail Pain
  • Adam Fortuna
  • Alberto Gallego
  • Alex Wlchan
  • Answer.AI
  • Arne Bahlo
  • Ben Carlson
  • Ben Kuhn
  • Bert Hubert
  • Bits about Money
  • Brian Krebs
  • ByteByteGo
  • Chip Huyen
  • Chips and Cheese
  • Christopher Butler
  • Cool Infographics
  • Dan Sinker
  • David Walsh
  • Dmitry Dolzhenko
  • Elad Gil
  • Ellie Huxtable
  • Ethan Marcotte
  • Exponential View
  • FAIL Blog
  • Founder Weekly
  • Geoffrey Huntley
  • Geoffrey Litt
  • Greg Mankiw
  • Henrique Dias
  • Hypercritical
  • IEEE Spectrum
  • Investment Talk
  • Jaz
  • Jeff Geerling
  • Jonas Hietala
  • Josh Comeau
  • Lenny Rachitsky
  • Lou Plummer
  • Luke Wroblewski
  • Matt Stoller
  • Mert Bulan
  • Mostly metrics
  • News Letter
  • NextDraft
  • Non_Interactive
  • Not Boring
  • One Useful Thing
  • Phil Eaton
  • Product Market Fit
  • Readwise
  • ReedyBear
  • Robert Heaton
  • Ruben Schade
  • Sage Economics
  • Sam Altman
  • Sam Rose
  • selfh.st
  • Shtetl-Optimized
  • Simon schreibt
  • Slashdot
  • Small Good Things
  • Taylor Troesh
  • Telegram Blog
  • The Macro Compass
  • The Pomp Letter
  • thesephist
  • Thinking Deep & Wide
  • Tim Kellogg
  • 英文媒体
  • 英文推特
  • 英文独立博客
©2025 搞英语 → 看世界 | Design: Newspaperly WordPress Theme