Props
reactは、データを一方向に転送するしかありません。
=>親コンポーネントからサブコンポーネントにデータをpropsとして渡すことはできますが、サブコンポーネント間でpropsを交換することはできません.=>DATA:上から下へ
=>EVENT:下から上へ(逆イベントフロー:stateドラッグ&ドロップ)
データを構成部品に転送します.
//App.js
function App() {
const number = 5;
return (
<div>
<MyHeader />
<Counter initialValue={number}/>
</div>
);
}
InitialValueをCounter素子としてのProperty伝達//Counter.js
import React, {useState} from 'react';
const Counter = (props) => {
const [count, setCount] = useState(props.initialValue);
const onIncrease = () => setCount(count + 1)
const onDecrease = () => setCount(count - 1)
return (
<div>
<h2>{count}</h2>
<button onClick={onIncrease}>+</button>
<button onClick={onDecrease}>-</button>
</div>
)
}
InitionalValueをpropsとして受信し、props.initialValue
を使用番組はいくつも出してもいいです.
//App.js
function App() {
return (
<div>
<MyHeader />
<Counter a={1} b={2} c={3} d={4} ... />
</div>
);
}
送信回数が上のように多いと長くなる可能性があるので、オブジェクトとして使用できます.
オブジェクトを作成したら、展開演算子を使用してpropsを渡すことができます.
=> counter.jsで受信する場合、非構造化割当
{ 객체에서 필요값 }
しか受信できません.//App.js
function App() {
const counterProps = {
a: 1,
b: 2,
c: 3,
d: 4,
e: 5,
initialValue: 6,
}
return (
<div>
<MyHeader />
<Counter {...counterProps} />
</div>
);
}
//Counter.js
import React, {useState} from 'react';
const Counter = ({ initialValue }) => {
const [count, setCount] = useState(initialValue);
const onIncrease = () => setCount(count + 1)
const onDecrease = () => setCount(count - 1)
return (
<div>
<h2>{count}</h2>
<button onClick={onIncrease}>+</button>
<button onClick={onDecrease}>-</button>
</div>
)
}
.defaultProps
受信propsの値が定義されていない場合、エラーが発生します.
このような状況を避けるためにdefalt値を設定します.
//Counter.js
import React, {useState} from 'react';
const Counter = ({ initialValue }) => {
const [count, setCount] = useState(initialValue);
const onIncrease = () => setCount(count + 1)
const onDecrease = () => setCount(count - 1)
return (
<div>
<h2>{count}</h2>
<button onClick={onIncrease}>+</button>
<button onClick={onDecrease}>-</button>
</div>
)
}
Counter.defaultProps = {
initialValue: 0,
}
=>入力されたPropsがなくても0の値が得られます構成部品をpropsに転送できます
<コンテンツ>渡すアイテム</contener>
containerタグ間のタグはcontainer propsを介して渡され、containerコンポーネントから{children}が受信される.<div>{children}</div>
Container.jsにおける庇護機能を有する<div></div>
を作成し、その間に受信したprops{children}
を格納する.공부하며 정리&기록하는 ._. 씅로그
Reference
この問題について(Props), 我々は、より多くの情報をここで見つけました https://velog.io/@sseung-i/Propsテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol