初学React之useEffect和useState

178 阅读2分钟

今天接触了useEffect和useState,使用了useEffect,自己看了很多文档,然后写一下自己的理解,useEffect这个钩子有两个参数。

useEffect是React中的一个钩子函数,它有两个参数。

  1. 第一个参数是一个回调函数,类似于Vue中的mounted或created钩子。在组件渲染完成后会执行这个回调函数。可以在这个回调函数中发送AJAX请求、处理页面数据等操作。使用useState与useEffect结合使用效果更好。可以在useEffect的回调函数中进行一些状态改变的操作。举个例子,假设有一个包含输入框的页面,在点击搜索按钮后,将搜索的值保存到本地。当你再次点击带有输入框的页面时,输入框的值应该保持不变。这个效果可以通过在useEffect中处理来实现,在页面加载时,通过useState设置输入框的值为之前保存在本地的值。

    不过,你可能会遇到一个问题,即使使用了setState,页面上的输入框值也不改变。经过调试后发现,这是因为输入框渲染之后,setState的值还没有更新。但是我不知道如何解决这个问题。后来在GridManager作者的帮助下,发现了一个巧妙的方法。当输入框没有值时,可以在渲染条件中添加判断(input.value !== null),然后将输入框放在条件中进行渲染。这样问题就解决了,因为我没有正确判断输入框值是否为空,导致页面上的输入框没有值。

  2. 第二个参数类似于Vue中的updated钩子,它用于指定要监测更新的值。如果不提供参数,则默认监测所有值的更新。当要监测的值发生改变时,会触发页面的重新渲染。如果传入空数组([]),则表示不监测任何数据的更新。此外,第二个参数还可以传入一个回调函数,用于处理一些垃圾回收的内容,比如清除定时器、释放闭包等。

以上只是简单介绍了这两个钩子的用法。在以后更深入地了解这两个钩子后,我会再记录更多信息。