首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么用这种方式命名( useXXX )?

为什么用这种方式命名( useXXX )?
EN

Stack Overflow用户
提问于 2020-01-19 12:19:56
回答 2查看 3.2K关注 0票数 5

我一直在想如何命名反应钩。例如,useEffect,它的名称是如何表示类似于componentDidUpdate或componentDidMount的东西的?我们在加载组件之后所做的这些操作并不是副作用,而是主要应用程序流的一部分,那么为什么这些操作被称为副作用呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-01-19 21:02:28

为什么用这种方式命名( useXXX )?

从钩子文档,使用自定义钩

--我必须给我的自定义钩子命名为“use”吗?--请这样做。这个会议非常重要。没有它,我们就无法自动检查是否违反了Hooks的规则,因为我们无法判断某个函数是否包含对Hooks的调用。

use前缀并没有指示特定的功能,只是它是作为命名约定建立的react钩子。这类似于使用withXXXX前缀的特殊命名约定。

为什么这些叫副作用?

useEffect钩子用于在其依赖数组中的值被更新时满足特定条件时触发效果。它是基于类的组件的生命周期函数的同义词,两个最常见的函数是componentDidMountcomponentDidUpdate

react状态模型被认为是使用纯函数来更新状态,即接受输入的setState/useState/etc不对它们进行变异,而是返回新的对象,而其他函数(如useEffect )不直接修改和返回对象,但可以发出其他效果,例如调用异步API端点等。

一个超级简单的使用数组的例子

  • array::map是一个纯函数,它在数组上迭代,将每个元素映射到一个新值,并返回一个新数组。没有副作用。( redux减速器类似于返回下一个状态值)
  • array::forEach是一个纯函数,它在数组上迭代,对每个元素调用一个副作用回调,并返回undefined。副作用。(调用API,通常没有返回值,但在其他地方触发更新)
票数 5
EN

Stack Overflow用户

发布于 2020-01-19 12:32:37

在函数式编程范式中,如果函数做了一些改变其环境的事情,那么它就叫做sideEffect。

在react中,组件的工作就是给出一个ui应该是什么样子的视图。但为此,我们可能需要一些其他数据,而不仅仅是道具。通过网络请求。当我们不只是返回视图(比如附加事件、侦听器等)时,我们就会做其他事情,这些都是sideEffects。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59809947

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档