Reactで別ファイルからstyle属性にデータを挿入する

前回のレッスンで行ったように、コンポーネントファイル内にスタイルオブジェクトを記述する代わりに、スタイルオブジェクトを別ファイルで作成し、必要なコンポーネントにインポートすることができます。

では、CSSスタイルのないコンポーネントを見てみましょう:

App.jsfunction App() {
  return (
    <div>
      <p>text</p>
      <p>text</p>
      <p>text</p>
    </div>
  );
}

フォルダ src 内に別ファイル styles.js を作成し、スタイルオブジェクトを記述しましょう:

styles.jsconst class1 = {
  width: '200px',
  border: '2px solid brown',
  padding: '10px',
  textAlign: 'center',
};

const class2 = {
  color: 'orangered',
  fontWeight: 'bold',
};

const class3 = {
  fontStyle: 'italic',
  color: 'brown',
};

const class4 = {
  backgroundColor: 'orange',
  fontWeight: 'bold',
  color: 'white',
};

ファイル styles.js の最後に、オブジェクト styles としてスタイルオブジェクトをエクスポートすることを忘れないでください:

styles.jsexport const styles = {
  class1: class1,
  class2: class2,
  class3: class3,
  class4: class4
};

次に、オブジェクト styles をコンポーネントにインポートします:

App.jsimport { styles } from "./styles";       

これで、共通のオブジェクト styles から必要なCSSスタイルオブジェクトをタグに適用できるようになりました。最初の段落にオブジェクト class2 のスタイルを適用してみましょう:

App.js<p style={styles.class2}>text</p>

同様に、残りのタグにも他のオブジェクトのスタイルを追加します。

結果として、コンポーネントのコードは次のようになります:

App.jsfunction App() {
  return (
    <div style={styles.class1}>
      <p style={styles.class2}>text</p>
      <p style={styles.class3}>text</p>
      <p style={styles.class4}>text</p>
    </div>
  );
}  
Задание 1

前回のレッスンの課題で作成したReactコンポーネントを使ってください。タグ用のCSSスタイルオブジェクトを含む別ファイル styles.js を作成し、それらを単一のオブジェクトとしてエクスポートして、Reactコンポーネントにスタイルを適用してください。