今日はReact-nativeのスタイルシートについて書きたいと思います。CSSに近い書き方なので、理解しやすいと思います。
React-nativeには主に2種類のスタイルの適用の仕方があります。これらは異なる使用シナリオや開発者の好みに応じて選択されます。
1.インラインスタイリング
インラインスタイリングは、スタイルプロパティをコンポーネントのstyle
属性に直接記述する方法です。このアプローチは、小さなスタイル変更やプロトタイピングに便利で、特定のコンポーネントに対してクイックにスタイルを適用したい場合に使用されます。しかし、この方法はコードの再利用性が低く、複数のコンポーネントにわたるスタイルの一貫性を維持するのが難しいというデメリットがあります。
<View style={{ padding: 10, backgroundColor: 'blue' }}>
<Text style={{ color: 'white', fontSize: 20 }}>Hello, World!</Text>
</View>
このように関数コンポーネントやreturn文の中に直接記述する方法は直接書くには一時的な処置や、再利用しない場合には使えますね。ただ規模が大きくなってきた場合や複数人で作る際などにはもう一つの方法を試した方が効率的になります。
2.スタイルシート
スタイルシートは、StyleSheet.create
を使用してスタイルを定義し、適用する方法です。このアプローチでは、スタイルシートをコンポーネント外に定義し、適用することで、コードの整理と再利用性が向上します。スタイルシートを使うことで、アプリケーション全体のスタイルを一元管理しやすくなり、メンテナンスも容易になります。また、パフォーマンスの面でも効率的です。
const styles = StyleSheet.create({
container: {
padding: 10,
backgroundColor: 'blue',
},
text: {
color: 'white',
fontSize: 20,
},
});
<View style={styles.container}>
<Text style={styles.text}>Hello, World!</Text>
</View>
このようにstylesは一般的に使われますが、他の名前でもいいです。
複数コンポーネントにまたがる場合は、スタイルシートを使った方が効率がよくなります。
スタイルシートをファイルのコンポーネントから切り離してスタイルシート専用のファイルを使う方法は大きなプロジェクトになってくると特によりよく効率的になります。スタイルシートのコンポーネントを他の関数コンポーネントと分離して扱うことによって一元管理がしやすくなります。複数にまたがるスタイルの適用などに効果を発揮します。React-nativeは元々シングルページアプリケーション(SPA)とはいえ、複数の画面を作る場合が多いのでスタイリングシートはスタイリングシートでファイルを作った方が効率良く開発できます。
なぜ2種類存在するのか
これら2つのスタイリング手法が存在する理由は、異なる開発ニーズやシナリオに対応するためです。インラインスタイリングは素早い変更や小規模なプロジェクトに適しており、スタイルシートは大規模なアプリケーションや一貫性が求められるプロジェクトで有効です。開発者は、プロジェクトの要件や個人の好みに応じて、最適なスタイリング方法を選択することができます。