CSS -Module: Ein leistungsstarkes Werkzeug für komponentierte CSS
In diesem Artikel werden CSS -Module eingeführt, eine effektive Möglichkeit, CSS -Global -Namespace -Konflikte zu lösen und die Benennung von Komponenten zu vereinfachen. Es erfordert einen bestimmten Konfigurations- und Konstruktionsprozess, der normalerweise als Plug-In für Webpack oder Browserify verwendet wird, und wird nicht unabhängig ausgeführt.
Kernvorteile:
Arbeitsprinzip:
CSS -Module werden durch Importieren von CSS -Dateien in JavaScript -Modulen wie React -Komponenten implementiert. Es erstellt ein Objekt, das die in der CSS -Datei definierten Klassennamen in dynamisch generierte, einzigartig abgeschottete Klassennamen ordnet. Diese Klassennamen werden als Zeichenfolgen in JavaScript verwendet.
Zum Beispiel eine einfache CSS -Datei:
.base { color: deeppink; max-width: 42em; margin: 0 auto; }
Verwendung in JavaScript -Komponenten:
import styles from './styles.css'; element.innerHTML = `<div class="${styles.base}">CSS Modules真有趣!</div>`;
WebPack kann nach Zusammenstellung generieren:
<div class="_20WEds96_Ee1ra54-24ePy">CSS Modules真有趣!</div>
._20WEds96_Ee1ra54-24ePy { color: deeppink; max-width: 42em; margin: 0 auto; }
Klassenname -Generierung ist konfigurierbar, aber der Schlüssel ist, dass sie dynamisch generiert, einzigartig und zum richtigen Stil zugeordnet sind.
häufig gestellte Fragen:
:global()
-Sporte definieren, um die Wiederverwendbarkeit zu verbessern. composes
:global(.clearfix::after) { content: ''; clear: both; display: table; } .base { composes: appearance from '../AnotherModule/styles.css'; }
Anfänger:
Erstellen von Tools wie Webpack oder Browserify sind erforderlich.
WebPack -Konfiguration:
zu: webpack.config.js
hinzufügen
{ test: /\.css$/, use: [ 'style-loader', { loader: 'css-loader', options: { modules: true } } ] }
: MiniCssExtractPlugin
verwenden
const MiniCssExtractPlugin = require('mini-css-extract-plugin'); module.exports = { // ... other configurations module: { rules: [ { test: /\.css$/, use: [ MiniCssExtractPlugin.loader, { loader: 'css-loader', options: { modules: true } } ] } ] }, plugins: [ new MiniCssExtractPlugin({ filename: '[name].css' }) ] };
browserify -Konfiguration (Beispiel):
NPM -Skript in: package.json
hinzufügen
{ "scripts": { "build": "browserify -p [ css-modulesify -o dist/main.css ] -o dist/index.js src/index.js" } }
Zusammenfassung:
CSS-Module bieten eine nachhaltige, modulare, gut gescopte und wiederverwendbare CSS-Schreibmethode, insbesondere für große Projekte.
FAQ:
.module.css
. :global()
. composes
. Das obige ist der detaillierte Inhalt vonVerständnis der Methodik der CSS -Module. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!