検索
ホームページウェブフロントエンドCSSチュートリアルスタイルの競合を避けるために React でコンポーネントスコープの CSS を実現するにはどうすればよいですか?

How Can I Achieve Component-Scoped CSS in React to Avoid Style Conflicts?

React コンポーネントでの CSS スコープ

問題

ES6 を使用する React アプリケーションでは、個別の CSS ファイルをコンポーネントにインポートできます。ただし、この方法でインポートすると、CSS がグローバルにレンダリングされることが多く、すべてのコンポーネントに影響します。これにより、CSS の競合や意図しないスタイル設定が発生する可能性があります。

コンポーネント スコープの CSS

望ましい動作は、CSS のスコープが個々のコンポーネントに設定され、そのコンポーネントのスコープ内でのみスタイルが適用されるようにすることです。これは、スタイルがコンポーネントに対して「ローカル」である必要があり、コンポーネントがアンマウントされると消えることを意味します。

解決策

コンポーネント スコープの CSS を実現するには、CSS モジュールまたは同様の CSS-in の利用を検討してください。 -JS パッケージ。例には、感情、スタイル付きコンポーネント、または npm の広範なカタログからのパッケージが含まれます。

CSS モジュールなどは、クラス名とアニメーション名をローカルにスコープするメカニズムを提供します。 URL とインポートはモジュール リクエスト形式で処理されます。

CSS モジュールを使用した例

import React from 'react';
import styles from './styles/button.css';

class Button extends React.Component {
  render() {
    return (
      <button classname="{styles.button}">Click Me</button>
    );
  }
}
export default Button;

CSS モジュールを使用すると、生成される CSS は次のようになります。

.button_3GjDE {
  border-radius: 3px;
  background-color: green;
  color: white;
}

ハッシュ _3GjDE を持つ一意のクラス名は、スタイルのスコープをボタンに設定することで競合を防ぎますComponent.

代替アプローチ

代替の解決策は、汎用セレクターを回避し、コンポーネントと要素にクラスベースの命名規則を使用することです。例:

.aboutContainer {
  # Some style
}

.aboutContainer__code {
  # Some style
}

スタイルを必要とする各要素は一意のクラス名を受け取り、スタイルが特定のコンポーネント内にのみ適用されるようにします。

以上がスタイルの競合を避けるために React でコンポーネントスコープの CSS を実現するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
スクリーンリーダーの分解:アクセス可能なフォームとベストプラクティススクリーンリーダーの分解:アクセス可能なフォームとベストプラクティスMar 08, 2025 am 09:45 AM

これは、フォームアクセシビリティについて行った小さなシリーズの3番目の投稿です。 2番目の投稿を逃した場合は、「ユーザーフォーカスの管理:Focus-Visible」をご覧ください。で

Smart Forms Frameworkを使用してJavaScript連絡フォームを作成するSmart Forms Frameworkを使用してJavaScript連絡フォームを作成するMar 07, 2025 am 11:33 AM

このチュートリアルでは、Smart Formsフレームワークを使用して、プロフェッショナルなJavaScriptフォームの作成を示しています(注:使用できなくなりました)。 フレームワーク自体は利用できませんが、原則とテクニックは他のフォームビルダーに関連しています。

WordPressブロックと要素にボックスシャドウを追加しますWordPressブロックと要素にボックスシャドウを追加しますMar 09, 2025 pm 12:53 PM

CSS Box-Shadowおよびアウトラインプロパティは、WordPress 6.1でTheme.jsonサポートを獲得しました。実際のテーマでどのように機能するか、そしてこれらのスタイルをWordPressブロックと要素に適用するために必要なオプションのいくつかの例を見てみましょう。

GraphQLキャッシングの使用GraphQLキャッシングの使用Mar 19, 2025 am 09:36 AM

最近GraphQLの作業を開始した場合、またはその長所と短所をレビューした場合、「GraphQLがキャッシュをサポートしていない」または

最初のカスタムSvelteトランジションを作成します最初のカスタムSvelteトランジションを作成しますMar 15, 2025 am 11:08 AM

Svelte Transition APIは、コンポーネントがカスタムSVELTE遷移を含むドキュメントを入力または離れるときにアニメーション化する方法を提供します。

上品でクールなカスタムCSSスクロールバー:ショーケース上品でクールなカスタムCSSスクロールバー:ショーケースMar 10, 2025 am 11:37 AM

この記事では、Scrollbarsの世界に飛び込みます。私は知っています、それはあまりにも魅力的ではありませんが、私を信じてください、よく設計されたページは手をつないで行きます

ショー、Don&#039; t Tellショー、Don&#039; t TellMar 16, 2025 am 11:49 AM

あなたのウェブサイトのコンテンツプレゼンテーションの設計にどれくらいの時間に費やしますか?新しいブログ投稿を書いたり、新しいページを作成したりするとき、あなたは考えていますか

NPMコマンドは何ですか?NPMコマンドは何ですか?Mar 15, 2025 am 11:36 AM

NPMコマンドは、サーバーの開始やコンパイルコードなどの1回限りのプロセスまたは継続的に実行されるプロセスとして、さまざまなタスクを実行します。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール