Reactで別ファイルからstyle属性にデータを挿入する
前回のレッスンで行ったように、コンポーネントファイル内にスタイルオブジェクトを記述する代わりに、スタイルオブジェクトを別ファイルで作成し、必要なコンポーネントにインポートすることができます。
では、CSSスタイルのないコンポーネントを見てみましょう:
function App() {
return (
<div>
<p>text</p>
<p>text</p>
<p>text</p>
</div>
);
}
フォルダ src 内に別ファイル styles.js を作成し、スタイルオブジェクトを記述しましょう:
const 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 としてスタイルオブジェクトをエクスポートすることを忘れないでください:
export const styles = {
class1: class1,
class2: class2,
class3: class3,
class4: class4
};
次に、オブジェクト styles をコンポーネントにインポートします:
import { styles } from "./styles";
これで、共通のオブジェクト styles から必要なCSSスタイルオブジェクトをタグに適用できるようになりました。最初の段落にオブジェクト class2 のスタイルを適用してみましょう:
<p style={styles.class2}>text</p>
同様に、残りのタグにも他のオブジェクトのスタイルを追加します。
結果として、コンポーネントのコードは次のようになります:
function 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>
);
}
前回のレッスンの課題で作成したReactコンポーネントを使ってください。タグ用のCSSスタイルオブジェクトを含む別ファイル styles.js を作成し、それらを単一のオブジェクトとしてエクスポートして、Reactコンポーネントにスタイルを適用してください。