Reactメモ ~~

Reactのメモ2です

propsの指定

JavaScript

任意のJavaScript式は{}で囲むことによってpropsとして渡すことができます。
<MyComponent foo={1+2+3+4}/>

MyComponentというコンポーネントのpropsのfooに10が与えられる。

if文やfor文はJavaScriptでは文ではないらしいので{}の中で使うことができないので、JSX記法の近くで間接的に用いるらしい。

    function Number(props){
      let description;
      if(props.number %2 == 0){
        description=<strong>even</strong>;
      } else{
        description = <i>odd</i>;
      }
      return <div>{props.number} is an {description} number </div>;
    }

文字列リテラル

文字列リテラルをpropsに与える場合、以下は同じである。

    <MyComponent message="hello world" />
    
    <MyComponent message={'hello world'} />

プロパティのデフォルトはtrue

プロパティのデフォルトはtrueであるため、以下は同じである。

    <MyTextBox autocomplete />
    
    <MyTextBox autocomplete={true} />

しかし、値の省略は推奨してないらしいので、省略はしないように。

propsのスプレッド構文

props オブジェクトがあらかじめ存在しており、それを JSX に渡したいような場合は ... を「スプレッド」演算子として使用することで、props オブジェクトそのものを渡すことができます。

以下は同じである。

    function App1(){
      return <Greeting firestName="Ken" lastName="Sato" />; 
    }
    
    function App2(){
      const props = {firstName:'Ken', lastName'Sato'};
      return <Greeting {...props} />;
    }

また、必要なプロパティのみ取り出して、残りをスプレッド構文でまとめることもできます。