【问题标题】:Is a 'noop' [lodash] default parameter required for function props?功能道具是否需要“noop”[lodash] 默认参数?
【发布时间】:2019-06-15 05:55:54
【问题描述】:

我想知道人们在使用 React 中的可选默认函数时会提出什么建议。

我看到我们的代码库混合使用 () => {} 和 lodash noop。

哪个更好?

这是关于正确编码技术的一般问题。

export default ({
  name = '',
  value = '',
  label = name,
  type = 'text',
  noLabel = false,
  placeholder = '',
  required = false,
  isInvalid = false,
  showBar = true,
  inputRef,
  onChange = () => {},
  onBlurCb, // <-- THE BIT IN QUESTION
  ...props
}) => (
  <Component initialState={{ isFocused: false, hasValue: false }}>
    {({ state, setState }) => (
      <InputContainer
        isFocused={state.isFocused}
        isInvalid={isInvalid}
        noLabel={noLabel}
        {...props}
      >
...

这被用作稍后在组件中的合成事件的回调

onBlur={() => {
            setState({ isFocused: false })
            onBlurCb()
          }}

【问题讨论】:

  • 没有实际区别,所以这归结为可读性偏好。它们都是显示noop 的非常清晰的方式。
  • () =&gt; {} 应该很清楚它什么都不做(假设您熟悉语法)但是是否清楚它 supposed 是 noop 可能不是。这取决于读者和/或上下文。一个明确命名的noop 很清楚你已经 了一些东西,但它应该做任何事情,而不是有一个未完成的功能(也许你写了@ 987654326@,本来是要输入一些代码的,但有人打电话给你)。不过,这一切都将基于“最佳”的意见。

标签: javascript reactjs lodash noop


【解决方案1】:

这是_.noop()的源码:

function noop() {
  // No operation performed.
}

如您所见,它与() =&gt; {} 相同。

_.noop() 的主要缺点是需要导入它(另一行代码)。

除此之外,您应该在您的团队中使用约定,或者如果没有,则使用对您来说更具可读性的约定。

根据个人喜好,我会跳过导入,并使用() =&gt; {}

【讨论】:

    猜你喜欢
    • 2018-05-26
    • 1970-01-01
    • 1970-01-01
    • 2018-06-19
    • 1970-01-01
    • 2021-05-25
    • 2017-07-15
    • 2020-02-03
    • 2020-11-18
    相关资源
    最近更新 更多