在反应教程中:
https://egghead.io/lessons/javascript-redux-react-todo-list-example-filtering-todos
有扩展的主要组件创建:
class TodoApp extends Component {
render() {
const visibleTodos = getVisibleTodos(
this.props.todos,
this.props.visibilityFilter
);
.
. // Input and Button stuff
.
Run Code Online (Sandbox Code Playgroud)
而另一个组件只是创建一个包含函数的const:
const FilterLink = ({
filter,
children
}) => {
return (
<a href='#'
onClick={e => {
e.preventDefault();
store.dispatch({
type: 'SET_VISIBILITY_FILTER',
filter
});
}}
>
{children}
</a>
)
}
Run Code Online (Sandbox Code Playgroud)
我看到的差异,首先用类创建一个渲染函数,另一个用于发送回模板的返回函数.
有什么区别?我听说将来只允许使用扩展组件?
Jos*_*eau 23
简短的回答是,您希望尽可能多地使用无状态功能组件(SFC); 您的大多数组件应该是SFC.
在以下情况下使用传统Component
类:
this.setState
)componentWillMount
,componentDidUpdate
,等)<div ref={elem => this.elem = elem}>
)