javascript - 使用常量操作道具与使用函数操作道具有什么区别?
问题描述
在这种方法中,我正在检查是否propOne
是偶数,然后将结果分配给一个常量。
import React from 'react';
const TestComponent = ({ propOne }) => {
const isEven = propOne % 2 === 0
return (
<div>
{`Is even? ${isEven ? 'Yes' : 'No'}`}
</div>
);
};
在另一种方法中,我正在执行相同的逻辑(检查是否propOne
为偶数),但不是将结果分配给常量,而是将其分配给函数。
import React from 'react';
const TestComponent = ({ propOne }) => {
const isEven = () => propOne % 2 === 0
return (
<div>
{`Is even? ${isEven() ? 'Yes' : 'No'}`}
</div>
);
};
除了必须使用isEven()
而不是 just的明显区别之外isEven
,这两种方法之间有什么区别?
解决方案
考虑到这是一个功能组件,应该没有任何区别。(这意味着使用该函数会增加少量的冗长而无济于事。)
但请注意,如果类组件被isEven
引用this.props.propOne
并在(例如)渲染后一段时间调用的事件处理程序中使用,则类组件会有所不同 - 有关更多信息,请参阅Dan Abramov(React 开发人员之一)的这篇文章这个。
推荐阅读
- ubuntu - 安装freeradius 2.2.8时生成文件错误#2 eap libeap rlm_eap all modules all src all
- .net - 如何修复 .Net Azure Function App 中的“由于对象的当前状态导致操作无效”错误?
- oracle-adf - 在弹出窗口中显示之前从托管 bean 中读取文本并设置其样式
- node.js - 上传图片时看不到内容
- haskell - 阴谋集团解决依赖问题
- sql-server - 批量插入与格式文件不匹配
- css - 更改 Google 可视化图表中特定标签的字体和粗细
- asp.net-core - 为什么在 Blazor 中缺少 HttpResponseMessage.IsSuccessStatusCode 属性?
- paypal - PayPal 订阅 API、智能支付按钮和自定义变量
- ruby-on-rails - 挂在 dokku 液滴中的 Rails 控制台