なぜUSENTを使用して反応するか?
4971 ワード
私たちが反応してUSENDフックを使用しない場合はどうなりますか?
例では、1つずつインクリメントするカウンターボタンを作成したいとしましょう.
不動産なしで
以下のコードでは、ボタンをクリックしてカウンタをインクリメントしようとすると、カウントは変更されませんので、反応は、一度だけ成分をレンダリングし、それが再レンダリングされない状態の変更がないので、カウントは画面上で0に残ります.
コンソールで.ログ1つのカウントをクリックしてインクリメントされて見ることができます.
以下のコードでは、1つのボタンをクリックしてカウントを変更しようとすると、カウントが変更されますので、一度、それがマウントされたときに、コンポーネントをレンダリングし、それが再レンダリングされる状態の変化があるので、カウントは画面上にインクリメントされます.
例では、1つずつインクリメントするカウンターボタンを作成したいとしましょう.
不動産なしで
以下のコードでは、ボタンをクリックしてカウンタをインクリメントしようとすると、カウントは変更されませんので、反応は、一度だけ成分をレンダリングし、それが再レンダリングされない状態の変更がないので、カウントは画面上で0に残ります.
コンソールで.ログ1つのカウントをクリックしてインクリメントされて見ることができます.
import React from "react";
export default function MyComponent() {
let count = 0;
const setCount = () => {
count++;
console.log(count);
}
return (
<div>
<label>{count}</label>
<hr/>
<label>Counter</label>
<button onClick = {setCount}>{count}</button>
</div>
);
}
USENTで以下のコードでは、1つのボタンをクリックしてカウントを変更しようとすると、カウントが変更されますので、一度、それがマウントされたときに、コンポーネントをレンダリングし、それが再レンダリングされる状態の変化があるので、カウントは画面上にインクリメントされます.
import React, { useState } from "react";
export default function MyComponent() {
const[count, setCount] = useState(0);
return (
<div>
<label>{count}</label>
<hr/>
<label>Counter</label>
<button onClick = {() => {
setCount(count + 1);
}}>{count}</button>
</div>
);
}
つは常にDOMを直接操作することができますし、画面上のカウンタをインクリメントすることもできますが、反応を使用する際にはポイントがありません.Reference
この問題について(なぜUSENTを使用して反応するか?), 我々は、より多くの情報をここで見つけました https://dev.to/aasthapandey/why-to-use-usestate-in-react-pkfテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol