具有无状态功能的 Hello World

无状态组件从功能编程中获得了他们的理念。这意味着:一个函数在给定的内容上完全返回相同的东西。

例如:

const statelessSum = (a, b) => a + b;

let a = 0;
const statefulSum = () => a++;

从上面的例子可以看出,statelessSum 总是会返回给定 a 和 b 的相同值。但是,即使没有参数,statefulSum 函数也不会返回相同的值。这种类型的函数的行为也称为副作用。因为,该组件会影响某些事物。

因此,建议更频繁地使用无状态组件,因为它们没有*副作用,*并且总是会创建相同的行为。这就是你希望在应用程序中使用的内容,因为波动状态是可维护程序的最坏情况。

最基本的反应组分类型是没有状态的反应组分。React 组件是其道具的纯函数,不需要任何内部状态管理,可以编写为简单的 JavaScript 函数。这些被认为是 Stateless Functional Components 因为它们只是 props 的功能,没有任何 state 来跟踪。

这是一个简单的例子来说明 Stateless Functional Component 的概念:

// In HTML
<div id="element"></div>

// In React
const MyComponent = props => {
    return <h1>Hello, {props.name}!</h1>;
};

ReactDOM.render(<MyComponent name="Arun" />, element);
// Will render <h1>Hello, Arun!</h1>

请注意,此组件所做的全部操作是渲染包含 name 道具的 h1 元素。此组件不跟踪任何状态。这是一个 ES6 示例:

import React from 'react'

const HelloWorld = props => (
    <h1>Hello, {props.name}!</h1>
)

HelloWorld.propTypes = {
    name: React.PropTypes.string.isRequired
}

export default HelloWorld

由于这些组件不需要后台实例来管理状态,因此 React 有更多优化空间。实现是干净的,但到目前为止还没有实现对无状态组件的这种优化