自動再表示[react]
前回のやり方とは異なります
自動レンダリングを発生させる方法を学びます.
:データを格納する場所
:jsでは変数に格納する方法が多く使用されています
:reactではreactです.useState()の使用
React.useState(初期値)
アレイ方式で格納、
配列の最初の値は初期値です.
2番目の値は、その値を変更する関数です.
したがって、初期値を適用する場合は、「配列のn番目の値」というように指定する必要があります.
ex. {data[0]}
気分が悪い!!!
直接値の設定
(現在の状態に関係のない値を新しい状態に設定する場合)
setState(state +1)
伝達関数
(現在の状態を変更して新しい状態にする場合)
setState(state => state +1)
:関数の最初のパラメータは現在の状態です.
自動レンダリングを発生させる方法を学びます.
🟢 state
:データを格納する場所
🖤 js
:jsでは変数に格納する方法が多く使用されています
<script>
let counter = 0;
const button = document.getElementById("btn");
const span = document.querySelector("span");
function handleClick() {
counter = counter + 1;
span.innerText = `Total clicks: ${counter}`;
}
button.addEventListener("click", handleClick);
</script>
上のコードではstateはcounter(変数)🖤 react
:reactではreactです.useState()の使用
React.useState(初期値)
const data = React.useState(0);
古い方法let counter = 0;
function countUp() {
counter = counter + 1;
render();
}
これと同じ役割を果たしている❗️React.useState()の特性
アレイ方式で格納、
配列の最初の値は初期値です.
2番目の値は、その値を変更する関数です.
したがって、初期値を適用する場合は、「配列のn番目の値」というように指定する必要があります.
ex. {data[0]}
気分が悪い!!!
だからjsの文法を利用します
const color = ["pink", "black"]
const [favColor, sosoColor] = color;
ではfavColorは「pink」、soColorは「black」です
この文法を使えば.const [counter, modifier] = React.useState(0);
简単に言える
🟣 修飾子を使用してカウンタ値を変更する方法
function App() {
const [counter, setCounter] = React.useState(0);
const onClick = () => {
setCounter(counter + 1);
};
return (
<div>
<h3>Total clicks: {counter}</h3>
<button onClick={onClick}>Click me</button>
</div>
);
}
初期値を0に設定します.
onClick()はsetCounter(再レンダリング)を実行します
ではcounterの値は1増加します
修飾子関数を使用してステータスを変更する場合
構成部品の再生(再レンダリング)
📌 反応の最大の特徴
データを変更するたびに
構成部品の再レンダリングとUIの更新
🟣 ステータスの設定方法
const [counter, modifier] = React.useState(0);
function App() {
const [counter, setCounter] = React.useState(0);
const onClick = () => {
setCounter(counter + 1);
};
return (
<div>
<h3>Total clicks: {counter}</h3>
<button onClick={onClick}>Click me</button>
</div>
);
}
(現在の状態に関係のない値を新しい状態に設定する場合)
setState(state +1)
(現在の状態を変更して新しい状態にする場合)
setState(state => state +1)
:関数の最初のパラメータは現在の状態です.
📌 コードに適用
const onClick = () => {
//setCounter(counter + 1);
setCounter((current) => current + 1);
};
setCounter((current) => current + 1);完全なコード
<!DOCTYPE html>
<html>
<body>
<div id="root"></div>
<script src="https://unpkg.com/[email protected]/umd/react.development.js"></script>
<script src="https://unpkg.com/[email protected]/umd/react-dom.production.min.js"></script>
<script src="https://unpkg.com/@babel/[email protected]/babel.min.js"></script>
<script type="text/babel">
const root = document.getElementById("root");
function App() {
const [counter, setCounter] = React.useState(0);
const onClick = () => {
setCounter((current) => current + 1);
};
return (
<div>
<h3>Total clicks: {counter}</h3>
<button onClick={onClick}>Click me</button>
</div>
);
}
ReactDOM.render(<App />, root);
</script>
</body>
</html>
Reference
この問題について(自動再表示[react]), 我々は、より多くの情報をここで見つけました https://velog.io/@ch9eri/react-자동으로-리렌더링-일으키기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol