npm 包 storybook-addon-themr 使用教程

阅读时长 5 分钟读完

在前端开发中,样式的设计和管理是一个很重要的话题,其中一个比较有趣的工具是 Storybook。Storybook 是一个 UI 组件库的开发环境,可以让开发者快速创建、测试和文档化组件库中的 UI 组件,其包含了非常丰富的功能。

在本文中,我们将介绍一个 Storybook 的扩展 npm 包 storybook-addon-themr,它可以让开发者在 Storybook 环境中轻松地进行样式调试和管理,能够提高我们的 UI 开发效率。

安装

在使用之前,需要先安装 Storybook,如果还没有安装可以通过下面命令进行安装:

安装完后,我们可以创建一个新的 Storybook 项目:

然后安装 storybook-addon-themr:

使用

安装完成后,我们需要在 Storybook 的配置文件中注册该扩展,步骤如下:

  1. 打开 .storybook/main.js 文件
  2. 导入该扩展
  1. 使用 withTheming 方法包装 Storybook 的配置

完整代码如下:

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

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

以上代码中,我们通过 parameters 属性来设置样式,可以设置全局的样式或者局部组件的样式

其中,全局样式是指应用到所有 Storybook 基础样式上的样式,如颜色、字体、边框等;而局部样式是指应用于指定组件的样式,如单独的组件样式、和 Story 的上下文环境相关的样式。

下面我们将详细介绍两种情况的使用。

设置全局样式

下面是一个修改背景颜色的例子,我们可以在 parametersthemr 属性中添加一个 base 对象,修改 background 属性值即可:

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

添加完上述代码后,我们可以在 Storybook 中看到全局的背景色已经发生变化。

设置局部组件样式

story 应该一直是展示单一组件的,而组件又有很多的状态和用例,所以局部样式的支持非常重要。

假设我们需要给某个 story 的组件应用不同的样式,可以通过设置 themed 属性和 namespaces 属性实现:

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

上面代码中,我们增加了一个名为 myNamespace 的样式命名空间,该样式命名空间会将 tag 和各种 props 应用到所有匹配的组件上。

下面是如何在 story 中应用该样式:

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

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

上面代码中,我们为 story 的 parameters 属性增加了 themr 属性,主动包含了 myNamespace 定义的样式,而具体应用到的组件是位于 story 中的 <MyComponent> 组件。

同样的,在多个 story 中共享样式也是很容易的,只需将 themr 属性添加到 Storybook 配置中即可,如:

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

由于 withTheming 方法会返回一个修饰过的配置对象,可以使用该对象并导出它。

结语

上面是我们使用 storybook-addon-themr 的简单教程,它为我们提供了非常方便的样式管理和调试工具。了解和使用它将有助于我们更高效地开发 UI 组件,并且可以非常方便的管理样式。

当然还有许多其他的 API 和配置,我们可以在 Storybook 和 npm 包文档中查看具体介绍和使用方法。

完整代码及可运行的示例可参考 github

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

纠错
反馈