npm 包 emotions 使用教程

阅读时长 5 分钟读完

简介

Emotions 是一个流行的 React 应用程序的 CSS in JS 库,它允许通过编写简单的 JavaScript 代码将样式应用于元素。它提供了一种更好的方法来管理样式,很大程度上减少了 CSS 的样板代码。本文将介绍如何使用 emotions NPM 包,让你更好地使用 CSS in JS。

安装

在开始之前,我们需要先安装 emotions。要安装 emotions,请打开终端并输入以下命令:

注意,我们同时安装了 @emotion/core,这是 emotions 的核心包,负责管理样式。

使用 emotions

安装之后,我们就可以开始使用 emotions 了。让我们来看一个简单的例子,该例子将悬停元素的背景颜色更改为红色:

-- -------------------- ---- -------
------ ------ ---- ------------------

----- ------ - --------------
  ----------------- ------
  ------ ------
  ------- --- ----- ------
  ----------- --- ---- -----

  ------- -
    ----------------- ----
    ------ ------
  -
--

-------- --------- -
  ------ -
    --------
      ----
    ---------
  --
-

在这个例子中,我们定义了一个组件 Button,它是一个 button 元素样式的缩写。我们使用样式模板字符串来定义应用于元素的样式。在这个字符串中,我们可以使用所有 CSS 属性,并使用与 CSS 类似的语法来定义样式规则。

注意,我们不需要引用任何其他样式表或类名。一旦我们定义了按钮组件,我们就可以像使用任何其他 React 组件一样使用它。

重用样式

在 React 中,组件经常具有相似的样式,但稍有不同。为了避免过度代码冗余,我们可以在组件之间共享样式。

例如,让我们想象一个具有两个彼此相似的按钮,一个用于登录,另一个用于注册。我们可以为这两个按钮定义单独的组件:

-- -------------------- ---- -------
------ ------ ---- ------------------

----- ------ - --------------
  ----------------- ------
  ------ ------
  ------- --- ----- ------
  ----------- --- ---- -----

  ------- -
    ----------------- ----
    ------ ------
  -
--

----- ----------- - ---------------
  ------ -----
--

----- -------------- - ---------------
  ------ ------
--

-------- --------- -
  ------ -
    --
      -------------
        --
      --------------
      ----------------
        --
      -----------------
    ---
  --
-

在这个例子中,我们定义了一个 Button 组件,然后定义了两个其他组件 LoginButtonRegisterButton,它们会继承 Button 的所有样式规则。我们可以通过覆盖 color 属性来更改两个按钮的颜色。

注意,我们使用 styled(Button) 语法来创建复合样式。这将使 LoginButtonRegisterButton 继承 Button 的样式,同时提供了一些额外的样式,例如颜色。

传递 props

在 React 中,props 是组件之间通信的一种通用方式。在 emotions 中,我们也可以使用 props 来定义样式。

例如,假设我们有一个具有两种颜色的按钮,这些颜色由组件属性指定。我们可以这样定义组件:

-- -------------------- ---- -------
------ ------ ---- ------------------

----- ------ - --------------
  ----------------- ------- -- ------------------
  ------ ------- -- -------------
  ------- --- ----- ------
  ----------- --- ---- -----

  ------- -
    ----------------- ----
    ------ ------
  -
--

-------- --------- -
  ------ -
    --
      ------- ------------------ --------------
        ----
      ---------
      ------- ------------------ --------------
        ----
      ---------
    ---
  --
-

在这个例子中,我们定义了一个 Button 组件,它将背景和颜色属性传递到样式规则中。我们可以像使用任何其他 React 组件一样使用这个组件,并根据需要传递不同的属性。

总结

在本文中,我们介绍了如何使用 emotions 包来管理 React 应用程序的样式。我们学习了如何定义单独的样式组件,如何在组件之间共享样式,以及如何使用 props 传递样式规则。使用 emotions,我们可以更有效地管理样式,并提高代码重用性。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60066e1fa563576b7b1ecd85

纠错
反馈