ホームページ  >  記事  >  ウェブフロントエンド  >  CSSモジュールとは何ですか?見てください!

CSSモジュールとは何ですか?見てください!

青灯夜游
青灯夜游転載
2021-02-14 09:29:552661ブラウズ

CSSモジュールとは何ですか?見てください!

今年の 4 月にある企業と面接しました。

技術面接中に、CSS モジュールを理解したかどうか尋ねられ、理解していないと答えました。

彼は続けて、通常の開発中にコンポーネントや要素にクラス名を付けるときはどうすればよいか、と尋ねました。
私は、あなたが書いたクラス名が他の同僚が書いたクラス名と競合しないように、要素とコンポーネントに特定のプレフィックスを追加するように言いました。

その後、それはなくなり、React の原則などについてたくさんの質問を受け、面接に合格しました。

今日は、より明確になるように、CSS モジュールとは何かを彼に説明します。

[推奨チュートリアル: CSS ビデオ チュートリアル ]

最初に画像を見てみましょう:

CSS モジュールの動作原理を理解するための画像:
CSSモジュールとは何ですか?見てください!
私たちがコードを作成したとき、2 つのファイルがあり、1 つは ProductList.less ファイルで、もう 1 つは ProductList.jsx ファイルでした。
ビルド後、less ファイルは次のファイルに変換されます。青いタイトルのファイル。

これは次のことからわかります:

  • button クラスの名前は、ビルド後に ProductList_button_1FU0u に変更されます。 button はローカル名、ProductList_button_1FU0u はグローバル名です。 名前の競合を心配することなく、短くてわかりやすい名前を使用できます。

あとは、css/less ファイルに .button {…} を記述し、コンポーネントの style.button を通じて参照するだけです。

グローバル CSS の定義

CSS モジュールはデフォルトでローカル スコープです。グローバル ルールを宣言したい場合は、:global 構文を使用できます。

例:

.title {
	color: red;
}
:global(.title) {
	color: green;
}

引用する場合:

<App className={styles.title} /> // red
<App className="title" />        // green
classnames Package

一部の複雑なシナリオでは、1 つの要素が複数の className に対応し、それぞれの className が対応する場合があります。いくつかの条件に基づいて表示するかどうかを決定します。このとき、classnames ライブラリは非常に便利です。

import classnames from &#39;classnames&#39;;
const App = (props) => {
	const cls = classnames({
		btn: true,
		btnLarge: props.type === &#39;submit&#39;,
		btnSmall: props.type === &#39;edit&#39;,
	});
	return <div className={ cls } />;
}

このようにして、異なる型が App コンポーネントに渡されると、異なる className の組み合わせが返されます:

<App type="submit" /> // btn btnLarge
<App type="edit" />   // btn btnSmall

プログラミング関連の知識の詳細については、こちらをご覧ください: プログラミング教育 ! !

以上がCSSモジュールとは何ですか?見てください!の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。