到底React Hooks有何特別(二)?淺談useEffect及useReducer
於本篇文章的上集,我們討論了useState
如何令Stateful React component
簡化良多,此篇主要討論的是如何使
用useEffect
。useEffect
可以簡化stateful logic,很多人都提到 React Hooks
有可能可以完全取代Redux
作為 React State
Management的標準,正因如此。
重溫
上集提到,使用useState
可以將原本class based component
變成簡單的 functional component
。
class Welcome extends React.Component {
constructor(props) {
super(props);
this.state = {
counter: 0,
};
this.incrementCounter = this.incrementCounter.bind(this);
}
incrementCounter() {
this.setState((state) => ({
counter: state.counter + 1,
}));
}
render() {
return (
<h1 onClick={this.incrementCounter}>
Hello, {this.props.name}
{this.state.counter} times
</h1>
);
}
}
變成
function Welcome(props) {
const [counter, setCounter] = useState(0);
return (
<h1 onClick={() => setCounter((counter) => counter + 1)}>
Hello, {props.name}
{counter} times
</h1>
);
}