220322 React Hooks
Side Effectとは?
let a= 0;
function sideEffect() {
a++;
}
sideEffect()
では、なぜ使用しているジェネリック素子を関数型素子に変更しなければならないのでしょうか.
クラス構成部品と異なり、関数構成部品ではlifeCycleの使用と管理が困難であるため、Hooksはこれを補足としています.
「Hooksの削除」とは?
// Function component(Hook)
import React, { useState, useEffect } from 'react';
function Example() {
const [count, setCount] = useState(0);
useEffect(() => {
document.title = `You clicked ${count} times`;
});
return (
<div>
<p>You clicked {count} times</p>
<button onClick={() => setCount(count + 1)}>
Click me
</button>
</div>
);
}
// Class component
class Example extends React.Component {
constructor(props) {
super(props);
this.state = {
count: 0
};
}
componentDidMount() {
document.title = `You clicked ${this.state.count} times`;
}
componentDidUpdate() {
document.title = `You clicked ${this.state.count} times`;
}
render() {
return (
<div>
<p>You clicked {this.state.count} times</p>
<button onClick={() => this.setState({ count: this.state.count + 1 })}>
Click me
</button>
</div>
);
}
}
Hooks使用規則
繰り返し文、条件文、ネスト関数でHookを実行
useState
const [state, setState] = useState(initialState);
追加2,234
import React, { useState } from 'react';
function Counter() {
const [number, setNumber] = useState(0);
const onIncrease = () => {
setNumber(prevNumber => prevNumber + 1);
}
const onDecrease = () => {
setNumber(prevNumber => prevNumber - 1);
}
return (
<div>
<h1>{number}</h1>
<button onClick={onIncrease}>+1</button>
<button onClick={onDecrease}>-1</button>
</div>
);
}
export default Counter;
上記のコード例onIncreaseとonDecreaseでsetNumberを使用する場合
次の状態をパラメータとして使用するのではなく、
値を更新する関数をパラメータとして使用することもできます.
useEffect
反応素子をレンダリングするたびに特定の操作を実行する機能を設定できます.
DOM更新が完了すると読み込みます:react正式ドキュメント説明
userEffectは、最初のレンダリング以降のすべての更新で実行されます.
レンダー後に
//함수형 컴포넌트
import React, { useState, useEffect } from 'react';
function Example() {
const [count, setCount] = useState(0);
useEffect(() => {
document.title = `You clicked ${count} times`;
});
return (
<div>
<p>You clicked {count} times</p>
<button onClick={() => setCount(count + 1)}>
Click me
</button>
</div>
);
}
Reference
この問題について(220322 React Hooks), 我々は、より多くの情報をここで見つけました https://velog.io/@nulee1000/220322-React-Hooksテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol