我所理解的是react功能组件应该是纯函数。它们不应该调用任何不纯净的函数,例如Date((。但是这个代码到底有什么问题呢?
import React from 'react';
export default ({ name }) => <p>Today is {Date()}</p>
React功能组件不需要纯度(确切意义上(。文档实际说明的内容是:
所有React组件在其道具方面都必须像纯函数一样工作
当然,应用程序UI是动态的,并且随着时间的推移而变化。在下一节中,我们将介绍"状态"的一个新概念。State允许React组件随着时间的推移更改其输出,以响应用户操作、网络响应和其他任何事情,而不违反此规则。
您的示例函数不使用任何道具,而且它绝对不会改变任何道具,因此(根据React对纯度的定义(它是一个纯函数。