我的React命名方式

你可能已经听说过很多次,在编程中最难的事情之一就是命名。

很多时候,我们会花费很多的时间来思考如何给组件的propsstates变量命名。

在这篇材料中,我将与您分享我在使用React时的命名规范,帮助您轻松决定如何命名propsstates

Props命名规范

我将props分为两类: InputOutput。他们分别有不同的命名方式。

Input props是从父组件传递到子组件,用于定义子组件的行为。

image.png

Output propsInput props相似,但它们的主要目的是允许子组件与父组件进行通信,我们称之为事件处理器。

image.png

既然我们已经了解了Output propsInput props之间的区别,接下来让我们讨论命名规范。

Input Props的命名

对于Input Props,我使用以下命名规范:

  • 如果props是布尔值,我使用前缀“is”或“has”,后跟props名称。例如:isDisabled, hasError, isActive, isOpen

  • 如果props是组件的“域值”或“域数据”,我将其命名为value。无论是字符串、数字、数组还是任何对象——它们都称为value,类似于原生HTML元素属性。例如:value, defaultValue, initialValue

  • 如果props是组件内部子组件的样式,我使用后缀Props,加上子组件名称。例如:textProps, buttonProps, inputProps, switchProps

  • 如果props是引用(ref)props,我使用后缀Ref,加上引用的名称。例如:inputRef, buttonRef, textRef

Output Props的命名

对于Output Props,我使用以下命名规范:

  • 如果props是渲染props,我使用前缀 render,后面跟props的名称。例如:renderItemrenderHeaderrenderFooter

  • 如果props是事件处理器,我使用前缀 on,后面跟事件的名称。例如:onClickonSubmitonCloseonOpen

由于一些Output Props是事件处理器,在这种情况下,我使用前缀 handleOn,后面跟事件的名称。例如:handleOnClickhandleOnSubmithandleOnClosehandleOnOpen

如果事件是变更事件,我还会添加后缀 Change。例如:handleOnChangehandleOnInputChange

image.png

State命名规则

State在命名规范上几乎与原生JavaScript变量相同。

如果你熟悉并且已经有了变量的命名规范,你可以对状态变量使用相同的命名规范。

但如果你没有变量的命名规范,可以使用以下命名规范:

  • 如果State是布尔值,我使用前缀 ishas,后面跟状态的名称。例如:[isDisabled, setIsDisabled][hasError, setHasError][isActive, setIsActive][isOpen, setIsOpen]

  • 如果State是组件的“域值”/“域数据”,我将其命名为 value。无论它是字符串、数字、数组还是任何对象——它们都是相同的值,类似于原生HTML输入元素。例如:[value, setValue][defaultValue, setDefaultValue][initialValue, setInitialValue]

如果这些命名规范中的任何一个与Props冲突,你可以在解构Props时对它们进行别名处理。

image.png

  • 如果State是一个缓存的值,我使用前缀 memoizedMemoized,后面跟State或组件的名称。

如果缓存的值不是组件,前缀用小写。例如:memoizedValuememoizedSummemoizedResult

image.png

如果缓存的值是组件,前缀用大写。例如:MemoizedButtonMemoizedTextMemoizedHeader

image.png

结论

命名是件困难的事情,但有了一个指南来帮助你做决定,会变得更容易。

这些是我在使用React时采用的命名规范,如果你注意到了,它们受到HTML元素属性的启发。我喜欢重用其中的一些命名规范,因为这样我不必重新发明命名,只需寻找相似之处。

如果这些对你不起作用,只要记住,你总是可以创建最适合你、你的使用场景和团队的命名规范。

最终,重要的是你有一个可以始终遵循的命名规范。

原文:https://juejin.cn/post/7374287624544419866

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值