ホームページ >ウェブフロントエンド >jsチュートリアル >CSS-in-JS: React アプリケーションの最新のスタイル
CSS-in-JS は、CSS スタイルを JavaScript ファイル内に記述する手法です。これにより、開発者は JavaScript 構文を使用して CSS ルールを作成できるようになり、React アプリケーションのスタイルを設定するためのより動的でモジュール式のアプローチが提供されます。この手法は、スタイルの範囲がグローバル スタイルシートではなく個々のコンポーネントに限定される、コンポーネントベースのアーキテクチャの台頭とともに人気が高まっています。
React では、CSS-in-JS により、スタイルをそのスタイルが属するコンポーネントと密接に結び付けることができ、スタイルの維持とスケーラビリティが容易になります。 Styled Components、Emotion、JSS など、この手法を実装する一般的なライブラリがいくつかあります。
スコープ付きスタイル: CSS-in-JS により、スタイルのスコープが個々のコンポーネントに限定され、グローバルな CSS 競合の可能性が排除されます。これにより、スタイルがコンポーネント内で分離されるため、アプリケーションの保守が容易になります。
動的スタイリング: CSS-in-JS を使用すると、JavaScript の変数、小道具、状態を簡単に使用して、コンポーネントのロジックに基づいてスタイルを動的に変更できます。たとえば、ボタンの状態に基づいてボタンの色を変更できます。
コンポーネントベースのスタイリング: スタイルはコンポーネント ロジックと一緒に記述されるため、特に大規模なアプリケーションでの管理が容易になります。これにより、よりモジュール化され保守しやすいコードベースが可能になります。
自動ベンダー プレフィックス: Styled Components や Emotion などの多くの CSS-in-JS ライブラリは、ベンダー プレフィックスを自動的に処理し、ブラウザ間の互換性を確保します。
テーマ: CSS-in-JS を使用すると、グローバル テーマを簡単に作成できます。カラースキーム、タイポグラフィー、その他の共有スタイルをトップレベルで定義し、それらをコンポーネントに動的に挿入できます。
Styled Components は、CSS-in-JS の最も人気のあるライブラリの 1 つです。これにより、JavaScript ファイル内に実際の CSS コードを記述することができますが、スコープは個々のコンポーネントに限定されます。
npm install styled-components
import React from 'react'; import styled from 'styled-components'; // Create a styled component const Button = styled.button` background-color: ${(props) => (props.primary ? 'blue' : 'gray')}; color: white; padding: 10px 20px; border: none; border-radius: 5px; cursor: pointer; &:hover { opacity: 0.8; } `; const App = () => { return ( <div> <Button primary>Primary Button</Button> <Button>Secondary Button</Button> </div> ); }; export default App;
Emotion も、強力なスタイル ソリューションを提供する人気のある CSS-in-JS ライブラリです。これはスタイル付きコンポーネントに似ていますが、パフォーマンスの最適化やサーバー側レンダリングのサポートの強化など、いくつかの追加機能があります。
npm install @emotion/react @emotion/styled
/** @jsxImportSource @emotion/react */ import { css } from '@emotion/react'; import styled from '@emotion/styled'; const buttonStyle = (primary) => css` background-color: ${primary ? 'blue' : 'gray'}; color: white; padding: 10px 20px; border: none; border-radius: 5px; cursor: pointer; &:hover { opacity: 0.8; } `; const Button = styled.button` ${props => buttonStyle(props.primary)} `; const App = () => { return ( <div> <Button primary>Primary Button</Button> <Button>Secondary Button</Button> </div> ); }; export default App;
JSS は、JavaScript を使用して CSS を作成できるようにするもう 1 つの CSS-in-JS ライブラリです。カスタム テーマやより高度なスタイリング ロジックなどの機能を使用して、スタイルをより詳細に制御できます。
npm install jss react-jss
import React from 'react'; import { createUseStyles } from 'react-jss'; const useStyles = createUseStyles({ button: { backgroundColor: (props) => (props.primary ? 'blue' : 'gray'), color: 'white', padding: '10px 20px', border: 'none', borderRadius: '5px', cursor: 'pointer', '&:hover': { opacity: 0.8, }, }, }); const Button = (props) => { const classes = useStyles(props); return <button className={classes.button}>{props.children}</button>; }; const App = () => { return ( <div> <Button primary>Primary Button</Button> <Button>Secondary Button</Button> </div> ); }; export default App;
CSS-in-JS には多くの利点がありますが、独自の一連の課題も伴います。
CSS-in-JS は、JavaScript と CSS の力を組み合わせた、React アプリケーションのスタイルを設定するための最新のアプローチです。 Styled Components、Emotion、または JSS などのライブラリを使用すると、JavaScript ファイル内にスタイルを記述して、コードベースのモジュール性、パフォーマンス、保守性を向上させることができます。ただし、特に大規模なアプリケーションでは、CSS-in-JS の使用と潜在的なパフォーマンスの考慮事項のバランスをとることが重要です。
以上がCSS-in-JS: React アプリケーションの最新のスタイルの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。