Spread Operator を使用して React ですべての props を渡す
Web 開発者が React を気に入っているのは、再利用可能なコンポーネントを作成し、不要なコードを書かなくても済むためです。 ただし、コンポーネントの再利用は、特定の要素を格納する変数名を付けて繰り返しを避けるだけではありません。
React のコンポーネント システムは高度であり、子コンポーネントの内部コンテンツ、外観、さらには機能をカスタマイズできます。 親から子に値を渡すために使用される props
オブジェクトのおかげで可能です。
この記事では、すべての props
を子に渡し、子コンポーネント内で props
を介して渡される予測できない数の値を処理する方法について説明します。
Spread
(...
) 演算子を使用してすべての props
を渡す
spread
構文は、JavaScript の新しい機能です。 配列、文字列、およびオブジェクトで使用すると、さまざまな機能があります。 この場合、props
オブジェクトを使用して、親から子に値を渡します。
spread
構文は単純です。 複数のプロパティを持つオブジェクトがあるとします。
const obj {
propertyOne: 1,
propertyTwo: 2,
propertyThree: 3,
propertyFour: 4
}
3つのドット (...
) を使用して、すべての key-value
ペアを別のオブジェクトにコピーできます。
const copy = {...obj}
props
を使用する場合、props
オブジェクトには、手動で渡したいすべてのプロパティが格納されます。 別の props
オブジェクトがある場合は、同じ spread
構文を使用して、既存のオブジェクトのすべての値をコピーして渡すことができます。
以下の例を見てみましょう。
export default function App() {
const props = { firstName: "Irakli", lastName: "Tchigladze" };
return (
<div className="App">
<Hello {...props} />
</div>
);
}
function Hello({ firstName, lastName }) {
return (
<div>
<h1>Hello, {firstName + " " + lastName}</h1>
</div>
);
}
このように、<Hello>
コンポーネントの属性を 1つずつ設定する必要はありません。 代わりに、props
オブジェクトのすべてのプロパティが子コンポーネントで利用可能になります。 たとえば、以下の上記のコード フェンスの出力を参照してください。
出力:
Hello, Irakli Tchigladze
1つを除くすべての props
を渡す
props
オブジェクトのいくつかの値を渡すこともできますが、1つまたは 2つのプロパティを除外します。
export default function App() {
const props = { size: 20, firstName: "Irakli", lastName: "Tchigladze" };
const { size, ...other } = props;
return (
<div className="App" style={{ fontSize: size }}>
<Hello {...props} />
</div>
);
}
function Hello({ firstName, lastName }) {
return (
<div>
<h1>Hello, {firstName + " " + lastName}</h1>
</div>
);
}
この例では、props
オブジェクトには size
、firstName
、lastName
の 3つのプロパティがあります。
要素のスタイルを設定する (フォント サイズを指定する) ために size
プロパティを安全に使用するために、分割を使用します。 しかし、残りのプロパティを <Child>
コンポーネントに渡すことはできます。
Irakli is a writer who loves computers and helping people solve their technical problems. He lives in Georgia and enjoys spending time with animals.
LinkedIn