【问题标题】:I dont know what the following does我不知道以下是做什么的
【发布时间】:2020-05-15 20:51:32
【问题描述】:

我不明白这段代码的作用

useEffect(() => {    
    document.addEventListener('input', event => {
      if (event.target.tagName.toLowerCase() !== 'textarea') {
        return
      }
      autoExpand(event.target)
    }, false)
  }, [])

【问题讨论】:

  • 哪一部分你不明白?
  • 我建议阅读useEffect钩子,请在这里找到它:reactjs.org/docs/hooks-effect.html
  • useEffect 挂钩何时启动?
  • @SnigdhaReddyPulim 在组件渲染之前。因为有一个空数组作为 useEffect 的第二个参数,所以这是代码运行的唯一时间。
  • 请更新您的问题的标题,总结具体问题,以及您尝试自己解决的问题。参考how to ask

标签: reactjs react-hooks use-effect


【解决方案1】:

让我试着解释一下你的代码。

关于useEffect钩子可以在文档中阅读:

Effect Hook 让您可以在函数组件中执行副作用。

在您的情况下,依赖数组为空[],这意味着它仅在加载功能组件时被调用一次。与基于类的组件类似,但组合了生命周期事件,来自文档:

如果您熟悉 React 类生命周期方法,您可以将 useEffect Hook 视为 componentDidMountcomponentDidUpdatecomponentWillUnmount 的组合。

如果依赖数组中有一个对象,一旦它发生变化,它会再次触发传递的函数。

我建议进一步阅读以下有关 useEffect 钩子的更多详细信息:
https://reactjs.org/docs/hooks-effect.html

它将帮助您更深入地了解。希望对您有所帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-04-15
    • 1970-01-01
    • 2023-04-02
    • 2022-11-17
    • 2014-02-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多