Wie man mit React elegant CSS schreibt

Wie man mit React elegant CSS schreibt

1. Inline-Stile

Vorteile: Diese Methode ist relativ einfach und klar und fügt dem Tag Stilattribute hinzu.

Nachteile: Diese Methode kann dazu führen, dass die Projektstruktur aufgebläht wird und CSS-Benennungskonflikte auftreten.

importiere React, {Komponente} von 'react'
Importiere PropTypes aus „Prop-Types“
exportiere Standardklassenindex erweitert Komponente {
    statische Eigenschaftentypen = {
     Titel: PropTypes.string
    }
    rendern() {
        const h1Style={textAlign:'center',marginBottom:'20px',lineHeight:'35px',
        Höhe:'30px'}
        const {title} = diese.props
        zurückkehren (
         <div>
             <h1 style={h1Style}>{Titel}</h1>
             <hr/>
         </div>
        )
    }
}

2. Importmethode verwenden

Vorteile: Diese Methode ist flexibler zu verwenden, ähnlich der externen Einführung in CSS

Nachteile: Da der Reaktionsstil standardmäßig global ist, kann es zu Stilkonflikten kommen

Verwendung: Erstellen Sie eine neue CSS-Datei, legen Sie den Klassennamen über das className-Attribut in der JSX-Syntax fest und verwenden Sie den Klassennamen in CSS. Diese Methode kann einen ternären Ausdruck verwenden, um den Klassennamen durch Definieren einer Variablen auszuwählen.

importiere React, {Komponente} von 'react'
importiere "./index.css"
exportiere Standardklassenindex erweitert Komponente {
    Zustand={
        Flagge: wahr
    }
Farbe ändern=()=>{
    this.setState((Zustand, Eigenschaften)=>{
        zurückkehren {
           Flagge:!Staat.Flagge
        }
    })
}
    rendern() {
        const {flag}=dieser.Zustand
        zurückkehren (
            <div>
                <h1 className={flag?'blueColor':'redColor'}>Warten Sie nicht, bis Ihre Haare grau werden</h1>
                <button onClick={this.changeColor} className="btnStyle">Klicken, um die Schriftfarbe zu ändern</button>
            </div>
        )
    }
}

.blaueFarbe{
    Farbe: blau;
}
.roteFarbe{
    Farbe: rot;
}
.btnStyle{
    Breite: 260px;
    Höhe: 50px;
    Hintergrundfarbe: Aqua;
    Farbe: #fff;
    Rand: keiner;
    Schriftgröße: 28px;
    Rahmenradius: 10px;
}

3. CSS-Modul-Export

Vorteile: Keine Namenskonflikte, Stile sind nur lokal gültig

Nachteile: Zu umständlich, Module müssen jedes Mal importiert und exportiert werden, was gleichbedeutend damit ist, alle CSS-Klassennamen als Attribute eines Objekts zu behandeln. Wenn das Objektattribut benötigt wird, wird der Klassenname durch Aufrufen des Objektattributs aufgerufen. Die Möglichkeit, CSS-Konflikte zu lösen, besteht darin, verschiedenen Klassennamen Präfixe hinzuzufügen, ähnlich wie beim Festlegen von Modulen für den Stil in Vue.

verwenden:

  • Solange im CRA-Gerüst der CSS-Stil in der übergeordneten Komponente eingeführt wird, ist dieser Stil der globale Stil.
  • Verwenden der Modularität zum Lösen von Stilkonflikten in React
  • Wenn im CRA-Gerüst eine Stildatei modularisiert werden muss, benennen Sie die Stildatei einfach xx.module.css/xx.module.scss

importiere React, {FC,useState} von "react"
importiere Cmittem von "@/components1/cmittem"
importiere cssObj aus "./cmtlist.module.scss"
const Cmtlist:FC<{}>=(props)=>{
    zurückkehren (
        <div>
             <h1 className={cssObj.title}>Kommentareliste</h1>
       
       </div>
    )
}

Standard-Befehlsliste exportieren

4. Verwenden Sie gestaltete Komponenten

Vorteile: Die Kombination aus Template-String-Tag + Style ist eine Komponente, die mit einem Großbuchstaben beginnt. Man kann beispielsweise sagen, dass sie einige der beliebtesten Schreibmethoden in der React-Entwicklung integriert. Für React-Entwickler ist dies ein sehr guter Einstieg. Daher haben verschiedene Entwickler bei React-Komponenten unterschiedliche Gewohnheiten hinsichtlich der Verwendung von externem CSS oder Komponenten-CSS.

verwenden:

Es müssen Styled-Components installiert werden

npm i styled-components oder yarn add styled-components

vscode-Installations-Plugin zum einfachen Schreiben

4.1 Inbetriebnahme

importiere 'antd/dist/antd.less'
Importieren Sie Stile aus „Stilkomponenten“.
Funktion App() {
 const HomeWrapper = styled.div`
 Schriftgröße: 50px;
 Farbe: rot;
 Spanne{
   Farbe: orange;
   &.aktiv{
      Farbe: grün;
   }
   &:schweben{
     Farbe: blau;
     Schriftgröße: 40px;
   }
   &::nach{
     Inhalt: „ssss“
   }
   }
 `
  zurückkehren (
    <div Klassenname="App">
 <h1>Ich bin ein Titel</h1>
 <HomeWrapper>
 <h2>Ich bin ein Untertitel</h2>
   <span>Karussell 1</span>
   <span className="active">Karussell 2</span>
   <span>Karussell 3</span>
   <span>Karussell 4</span>
 </HomeWrapper>
    </div>
  );
}

Standard-App exportieren;

4.2 Festlegen von Attributen über attrs

importiere 'antd/dist/antd.less'
Importieren Sie Stile aus „Stilkomponenten“.
Funktion App() {
 const ChangeInput = styled.input.attrs({
   Platzhalter: 'wangsu',
   Hintergrundfarbe: „rot“
 })`
 Hintergrundfarbe: #7a7ab4;
 Farbe:${props=>props.bgColor}
 `
  zurückkehren (
    <div Klassenname="App">
 <h1>Ich bin ein Titel</h1>
 <ChangeInput Typ="Text"/>
    </div>
  );
}

Standard-App exportieren;

4.3 CSS-Vererbung

importiere React, {Komponente} von 'react'
Importieren Sie Stile aus „Stilkomponenten“.
const HYbutton = styled.button`
   Farbe: rot;
   Rand: 1px durchgezogen #ccc;
   Polsterung: 10px 20px;
`
//Hier verwenden wir Vererbung const XLbutton = styled(HYbutton)`
Hintergrundfarbe: blau;
`
exportiere Standardklasse Button erweitert Komponente {

    rendern() {
        zurückkehren (
            <div>
                <HYbutton>Dies ist eine Schaltfläche</HYbutton>
                <XLbutton>Dies ist eine geerbte Schaltfläche</XLbutton>
            </div>
        )
    }
}

Ich verwende diese Methode in letzter Zeit bei der Entwicklung von Projekten. Sie fühlt sich sehr neuartig an. Obwohl es in der Community Meinungsverschiedenheiten gibt, gefällt mir persönlich diese Methode zum Festlegen von CSS. Ich muss die globalen Stilprobleme überhaupt nicht berücksichtigen.

Oben finden Sie Einzelheiten zum eleganten Schreiben von CSS mit React. Weitere Informationen zum Schreiben von CSS mit React finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM!

Das könnte Sie auch interessieren:
  • React-Implementierungsbeispiel mit Amap (react-amap)
  • Detaillierte Erklärung des virtuellen DOM und des Diff-Algorithmus in React
  • React-Beispiel, das den Fortschritt des Datei-Uploads zeigt
  • So verwenden Sie Lazy Loading in React, um die Ladezeit des ersten Bildschirms zu verkürzen
  • So führen Sie das React-Projekt auf dem offiziellen WeChat-Konto aus
  • Kapseln Sie eine einfachste ErrorBoundary-Komponente zur Behandlung von React-Ausnahmen
  • Schritte zur Erstellung einer React Fiber-Struktur
  • Detaillierte Erklärung der Verwendung von Refs in den drei Hauptattributen von React
  • Schreiben Sie ein React-ähnliches Framework von Grund auf
  • React useEffect verstehen und verwenden

<<:  Perfekte Lösung für das Problem, dass Windows Server 2012 oder 2016 .NET Framework 3.5 nicht ohne Festplatte installieren kann

>>:  Zusammenfassung gängiger SQL-Anweisungen in MySQL

Artikel empfehlen

Detaillierte Schritte zur Installation von Docker in 5 Minuten

Für die Installation von Docker auf CentOS muss d...

Json-String + Cookie + lokaler Speicher in JS

Inhaltsverzeichnis 1.JSON-Zeichenfolge 1.1Json-Sy...

Tutorial zu HTML-Formular-Tags (2):

Dieses Tutorial stellt die Anwendung verschiedene...

Detaillierte Erklärung zum effizienten MySQL-Paging

Vorwort Normalerweise wird für MySQL-Abfragen mit...

Detaillierte Erklärung zur Verwendung des MySQL-Datentyps DECIMAL

Der MySQL DECIMAL Datentyp wird zum Speichern exa...

XHTML-Einführungstutorial: Verwendung von Listen-Tags

Listen werden verwendet, um eine Reihe ähnlicher o...

Detaillierte Zusammenfassung häufig verwendeter MySQL-Funktionen

Inhaltsverzeichnis Allgemeine MySQL-Funktionen 1....

CSS implementiert fünf gängige 2D-Transformationen

2D-Transformationen in CSS ermöglichen es uns, ei...

Vue ruft die Computerkamera auf, um die Fotofunktion zu realisieren

In diesem Artikelbeispiel wird der spezifische Co...

Sie müssen wirklich die Verwendung von CSS-Variablen var() verstehen

Wenn ein Webprojekt immer größer wird, werden sei...