npm 包 styled-components-bem 使用教程

如果你是一个前端工程师,你可能已经使用过 styled-components 这一 React 的样式库,它可以让你在 React 应用程序中编写 CSS,并且可以让你在组件内部轻松地定义和重用样式。但是,当你写更大的应用程序并且需要更好地组织你的 CSS 时,BEM(块元素修饰符) 可能会更适合你的需求,它是一种 CSS 命名约定,可以使你的 CSS 更具可维护性和可复用性。

在本文中,我们将介绍 npm 包 styled-components-bem,它将 BEM 与 styled-components 集成在一起,可以让你更好地组织你的 CSS。

安装和使用

在使用 styled-components-bem 之前,你需要先安装 styled-components。如果你还没有安装,可以运行以下命令:

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

然后,你可以安装 styled-components-bem:

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

styled-components-bem 提供了一些辅助函数,可以让你更方便地定义 BEM 样式。我们来看一个简单的例子:

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

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

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

在上面的示例中,我们首先导入必要的库,然后定义一个 StyledDiv 组件,并使用 bem 辅助函数定义了一个 BEM 样式。样式由两个块组成:&__element&--modifier。然后我们通过组件的类名来应用这些样式,另外我们将 block 作为 StyledDiv 的类名,这样 bem 就知道将这些样式应用于哪个块。

这里有两个组件,一个 div,另一个是带有 --modifierdiv。使用 BEM 规则,我们可以将它们放入一个块 block 中,然后应用样式。

BEM 样式

BEM 规则中有三个元素:块(block)、元素(element)和修饰符(modifier)。

块是一个独立的实体,可以在网页上出现任意多次。例如,在一个导航条中,每个导航项都可以组成一个块。

元素是块中的一部分,如导航条的文字或菜单项的图标等。元素总是跟随在它所属的块后面,然后由两个下划线(__)来连接。

修饰符用于指示块或元素的某个状态或变化。修饰符是通过两个连字符(--)来连接的。例如,我们可以使用一个名为 inactive 的修饰符来显示一个导航项被禁用的状态。

在 BEM 中,使用这些元素名称定义类名:.block 表示一个块,block__element 表示块中的元素,block--modifier 表示块的修饰符。

styled-components-bem 辅助函数

styled-components-bem 提供了一些辅助函数,可以让你更方便地定义 BEM 样式。这里是一些常用的辅助函数:

  • bem(block):定义一个新的块,块名为 block。返回一个模板字符串,你可以在其中定义元素和修饰符。

  • bem(element):定义一个新的元素,元素名为 element。返回一个模板字符串,你可以在其中定义修饰符。

  • bem.modifier(modifier):定义一个修饰符,修饰符名为 modifier。返回一个模板字符串,你可以在其中定义样式。

这些函数应该在样式定义中一起使用,以定义你的块、元素和修饰符。例如bem("block") 定义块,bem("block__element") 定义块中的元素。有了这些辅助函数,你可以更简单地编写 BEM 样式。

总结

styled-components-bem 是一个很好的 npm 包,可以让你更好地组织你的 CSS,使你的应用程序更具可维护性和可复用性。通过使用它提供的 BEM 辅助函数,你可以更方便地定义 BEM 样式,让你的 CSS 更加简洁易读。如果你正在为你的 React 应用程序编写 CSS,不妨试试 styled-components-bem。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/600672593660cf7123b3637f


猜你喜欢

  • npm 包 nodebb-plugin-rainbows 的使用教程

    NodeBB 是一个开源的论坛系统,它支持插件化的方式增强自身的功能。其中,nodebb-plugin-rainbows 是一个非常有趣的插件,它可以让论坛上的文字和代码变成彩虹色。

    4 年前
  • npm 包 @syapse/frontend-cookie-cutter 使用教程

    基本介绍 @syapse/frontend-cookie-cutter 是一个基于前端技术开发的 npm 包,其主要功能是提供一个 Cookie 操作的工具,方便我们在前端处理 Cookie 相关的操...

    4 年前
  • NPM 包 npm-update-module 使用教程

    介绍 在前端开发中,我们经常需要使用各种各样的第三方库和框架。这些库和框架经常会发布新版本,为了保持项目的稳定性和安全性,我们需要及时的更新这些库和框架。虽然 npm 提供了 npm update 命...

    4 年前
  • npm 包 snmo 使用教程

    简介 snmo 是一个轻量级的 JavaScript 库,用于在前端实现类似于手机原生应用的页面跳转和导航管理功能。它采用了现代化的 SPA 架构思想,支持多个路由和嵌套路由、路由懒加载、动态路由、路...

    4 年前
  • npm 包 @suchy/check 使用教程

    在前端开发中,我们经常需要验证用户输入的数据是否符合特定的要求。为了实现这个目的,我们可以使用 npm 包中的 @suchy/check。 @suchy/check 是什么 @suchy/check ...

    4 年前
  • NPM包cfn-nest的使用教程

    在使用AWS CloudFormation部署服务器less Web应用或者其他AWS云资源时,嵌套栈是维护云代码的重要工具之一。然而,AWS的嵌套堆栈及其编写的开销很大,难以维护。

    4 年前
  • npm 包 @behaver/orbital-node-position 使用教程

    前言 在天文学中,轨道定位是非常重要的一个概念。在前端开发中,应用轨道定位用于完成关于星球轨道等的模拟和计算。而 @behaver/orbital-node-position 就是一个 npm 包,可...

    4 年前
  • npm 包 0.css 使用教程

    什么是 0.css 0.css 是一款极简的 CSS 库,压缩后仅有 357B,它采用了一些比较新奇的 CSS 实现方式,深度挖掘了 CSS 的用法,让 CSS 更加语义化,同时提供了一些常用的样式,...

    4 年前
  • npm 包 mongoose-model-faker 使用教程

    在前端开发中,使用模拟数据是非常常见的。然而,手动创建模拟数据是一项费时费力的任务。为了解决这个问题,我们可以使用一个叫做 mongoose-model-faker 的 npm 包来轻松地生成模拟数据...

    4 年前
  • npm 包 @march/sayhi 使用教程

    简介 在前端开发中,我们通常会使用各种各样的代码库来帮助我们实现特定的功能。而这些代码库通常是以 npm 包的形式发布的。本文将介绍一个名为 @march/sayhi 的 npm 包,它可以帮助我们在...

    4 年前
  • npm 包 @quantalytix/react-dropdownbox 使用教程

    在前端开发中,下拉框是一个非常常见的组件。而 @quantalytix/react-dropdownbox 是一个基于 React 实现的下拉框组件, 其中封装了多种下拉框框架,使用该组件能够快速的实...

    4 年前
  • npm 包 packdoc 使用教程

    在前端开发过程中,我们经常需要将自己写的代码打包成一个 npm 包,供其他人使用。其中一个重要的环节就是写好明确的文档,让用户可以轻松地使用我们的 npm 包。而 packdoc 就是一个非常好用的 ...

    4 年前
  • npm 包 scrollclass 使用教程

    前言 在网页设计中,滚动条是一个很重要的组件,用于帮助用户浏览长页面。然而通常情况下,滚动条的样式和行为不够个性化,需要额外编写 CSS 和 JavaScript 代码来实现。

    4 年前
  • npm 包 smartapi-oasgraph-cli 使用教程

    介绍 smartapi-oasgraph-cli 是一个用于将 OpenAPI 规范的 API 转换成 GraphQL 服务的命令行工具。它可以快速地为您生成 GraphQL schema,以便您可以...

    4 年前
  • npm 包 lib-of-commons 使用教程

    npm 包 lib-of-commons 使用教程 lib-of-commons 是一款非常实用的 npm 包,它主要用来提取出前端开发中比较常用的一些工具函数和工具类。

    4 年前
  • npm 包 smartapi-oasgraph 使用教程

    简介 在前端开发中,我们经常需要使用 API 来获取远程数据。但是在使用 API 前,我们需要了解这些 API 的功能和参数。OpenAPI Specification (OAS) 是一种描述 API...

    4 年前
  • NPM 包 Selenium-DOM 使用教程

    Selenium-DOM 是一个强大的 NPM 包,它可以帮助前端开发人员自动化测试和更好地管理 DOM 元素。本文将介绍如何安装和使用 Selenium-DOM,以及一些它的高级方法。

    4 年前
  • npm 包 custom-sidenav-js 使用教程

    随着前端技术日新月异的发展,越来越多的开源项目和 npm 包被发布到了互联网上。其中,custom-sidenav-js 是一个非常实用的 npm 包,它可以帮助我们快速地实现侧边栏导航功能。

    4 年前
  • npm 包 @kredati/ludus-assert 使用教程

    概述 @kredati/ludus-assert 是一款基于 Jest 和 Chai 的 Node.js 断言库。它不仅提供了常规的断言方法,还提供了一些额外的实用功能,如在错误日志中添加额外信息、自...

    4 年前
  • npm 包 makerbot-rpc 使用教程

    在前端开发中,经常涉及到和后端服务器进行通信,而 makerbot-rpc 是一个可以帮助我们处理与 MakerBot 打印机进行通信的 npm 包。本文将为大家介绍如何使用 makerbot-rpc...

    4 年前

相关推荐

    暂无文章