Az Emotion könyvtár leegyszerűsíti a CSS használatát a Reactben, és néhány praktikus szintaktikai funkciót is hozzáad.

A React-alkalmazások formázása kihívást jelenthet, különösen akkor, ha stílusait rendezetten és karbantarthatóan szeretné tartani. A folyamat egyszerűsítése érdekében az Emotion könyvtár magasabb szintű absztrakciót biztosít a CSS-n felül.

Mi az Érzelem?

Az Emotion egy könyvtár a React-alkalmazások stílustervezéséhez, amely egyszerű és hatékony módot kínál a stílusok kezelésére. Lehetővé teszi, hogy CSS-t írjon JavaScriptben, és rugalmas API-t biztosít az összetevők stílusához.

Az Emotion használatának egyik fő előnye a React alkalmazás stílusának meghatározásában, hogy hatékonyabb módot biztosít a stílusok kezelésére. Például használhat azonos osztályneveket több összetevőben anélkül, hogy fennállna az elnevezési ütközések veszélye. ha CSS/SASS-szal dolgozik.

Az Érzelem könyvtár csak az azokat használó összetevőkre alkalmazza a stílusokat, nem pedig a teljes oldalra. Ez segíthet elkerülni az ütközéseket az oldalon lévő más stílusokkal, és modulárisabbá és újrafelhasználhatóbbá teheti a kódot.

Hogyan telepítsük az érzelmet

Az Emotion könyvtár hozzáadásához a React alkalmazáshoz futtassa a következő terminálparancsot:

npm install --save @emotion/react

Az Emotion könyvtárnak most telepítve kell lennie a projektben, és készen kell állnia a React alkalmazás stílusához.

Styling Az Emotion css Prop használatával

Miután telepítette az Emotion könyvtárat, használhatja a css kellék a React alkalmazás stílusához. A css A prop hasonló a stílusprofilhoz, mivel stílusokat adhat át neki karakterláncok vagy normál JavaScript objektumok formájában.

Az alkalmazás stílusához a css prop, importálnia kell a @érzelem/reagálás könyvtárat, majd határozza meg a stílusait:

/** @jsxImportSource @érzelem/reagál */
import Reagál tól től'reagál';
import {css} tól től'@érzelem/reagálás';

funkcióApp() {
Visszatérés (
párnázás: 0.5rem 1rem;
határ: nincs;
font-family: cursive;
határsugár: 12px;
szín: #333333;
háttérszín: örököl;
margin-block-start: 2rem;
margin-block-end: 2rem;
`}>
Kattints ide
</button>
)
}

exportalapértelmezett App;

A kód első sora, /** @jsxImportSource @emotion/react */, ez egy olyan megjegyzés, amelyet hozzá kell adni a JSX fájlhoz, jelezve, hogy az Emotion könyvtárat a fájl JSX gyakorlataként kell használni.

A JSX-ben a pragma egy olyan függvény, amely a JSX szintaxisát normál JavaScriptté alakítja. Alapértelmezés szerint a React a React.createElement JSX pragmaként működik. Azonban a @jsxImportSource megjegyzést, megadhat egy másik gyakorlatot is.

Ebben az esetben a @érzelem/reagálás pragma azt mondja a JSX-nek, hogy használja a jsx függvényt az Emotion könyvtárból a JSX kód átalakításához. Ha hozzáadja a pragma megjegyzést egy JSX-fájlhoz, használhatja az Emotion könyvtár CSS-in-JS funkcióit az összetevőiben.

A gomb komponens egy gombot jelenít meg néhány egyedi stílussal. Itt, a css prop hozzáadja az egyéni stílust a gombelemhez.

A css A prop támogatja a beágyazott stílust is. A beágyazott stílus lehetővé teszi egymásba ágyazott stílusok írását.

Például:

/** @jsxImportSource @érzelem/reagál */
import Reagál tól től'reagál';
import {css} tól től'@érzelem/reagálás';

funkcióApp() {
Visszatérés (
párnázás: 0.5rem 1rem;
határ: nincs;
font-family: cursive;
határsugár: 12px;
szín: #333333;
háttérszín: örököl;
margin-block-start: 2rem;
margin-block-end: 2rem;

&:lebeg{
szín: #e2e2e2;
háttérszín: #333333;
}
`}>
Kattints ide
</button>
)
}

exportalapértelmezett App;

Ebben a példában a hover stílus deklarációja a beágyazott stílusjegyet használja css támaszt. A fenti kódblokkban a háttér és a betűtípus színe megváltozik, amikor az egérmutatót a gomb fölé viszi.

Objektumstílusok átadása a css Prop

A css A prop a szokásos JavaScript objektumstílusokat is elfogadja. Több komponens stílusozásakor az objektumstílusok használata lehetővé teszi a stílusok újrafelhasználását az összetevőkben.

Objektumstílusok átadásához a css prop, határozza meg a stílusokat JavaScript objektumként, és adja át a propnak:

const stílus = {
párnázás: "0,5 rem 1 rem",
határ: 'egyik sem',
betűtípus család: 'kurzív',
határsugár: "12px",
szín: '#333333',
háttérszín: 'örököl',
marginBlockStart: '2rem',
marginBlockEnd: '2rem',

'&:lebeg': {
szín: "#e2e2e2",
háttérszín: '#333333',
}
}

Visszatérés (

"alkalmazás">

Vegye figyelembe, hogy a CSS-tulajdonságok neve kötőjel helyett camelCased. Ennek az az oka, hogy a stílusok JavaScript objektumokként vannak definiálva, amelyek camelCase elnevezési konvenciót használnak.

Styling a stílusos összetevők használatával

Az Emotion könyvtár stílusos összetevőket is használ a React alkalmazások stílusozásakor. Stílusos komponensek használata hasonló a React komponensekhez, eltekintve attól a ténytől, hogy már kész stílusokat tartalmaznak. Stílusos összetevők létrehozásához használja a stílusú funkció.

A stílusú funkció lehetővé teszi újrafelhasználható stílusú alkatrészek létrehozását. Használatához a stílusú függvényt, importálja a érzelem/stílus könyvtár.

Ahhoz, hogy a @érzelem/stílusú könyvtárat az alkalmazásban, telepíteni fogja azt a projektbe. Ezt a következő parancs futtatásával teheti meg a projekt termináljában:

npm install @emotion/styled

A telepítés után a @érzelem/stílusú könyvtár, importálja a stílusú funkciót, és határozza meg stílusait:

import stílusú tól től"@érzelem/stílusú";

const Button = styled.button({
párnázás: "0,5 rem 1 rem",
határ: 'egyik sem',
betűtípus család: 'kurzív',
határsugár: "12px",
szín: '#333333',
háttérszín: 'örököl',
marginBlockStart: '2rem',
marginBlockEnd: '2rem',

'&:lebeg': {
szín: "#e2e2e2",
háttérszín: '#333333',
}
})

exportalapértelmezett Gomb;

A fenti kódblokkban egy stílusos összetevő Gomb létrehozva. Ezt a gombot használhatja a React alkalmazásban, mint bármely más React összetevőt.

Például így:

import Reagál tól től'reagál';
import Gomb tól től'./Gomb';

funkcióApp() {
Visszatérés (


exportalapértelmezett App;

Rendering a App komponens megjelenít egy gombot a következőben meghatározott stílusokkal Gomb komponens a képernyőn.

A stílusú függvény karakterláncstílusokat is elfogad. Az objektumstílusok megközelítésétől eltérően néz ki, de hasonlóan működik.

import stílusú tól től"@érzelem/stílusú";

const Gomb = stílusos.gomb`
párnázás: 0.5rem 1rem;
határ: nincs;
font-family: cursive;
határsugár: 12px;
szín: #333333;
háttérszín: örököl;
margin-block-start: 2rem;
margin-block-end: 2rem;

&:hover {
szín: #e2e2e2;
háttérszín: #333333;
}
`

exportalapértelmezett Gomb;

Hatékony stíluskészítés érzelmekkel

Az Emotion egy hatékony könyvtár a React-összetevők stílusának meghatározásához, amely egyszerű és hatékony módot kínál a stílusok kezelésére. Akár kezdő, akár tapasztalt fejlesztő, az Emotion segíthet leegyszerűsíteni a React alkalmazás stílusának kialakítását, valamint megkönnyíti a kód karbantartását és méretezését.

Tehát ha hatékonyabb és rugalmasabb módot keres a React összetevőinek stílusára, fontolja meg az Emotiont.