npm 包 jss-plugin-extend 使用教程

AI 编程助手,豆包旗下的编程助手,提供智能补全、智能预测、智能问答等能力,节省开发时间,释放脑海中的创造力,支持 VSCode,点击体验 AI

介绍

jss-plugin-extend 是一个使用 JSS(CSS in JS 解决方案)时,用于扩展已有样式并生成新样式的 npm 包,它可以与 React 等库一起使用。

在 JSS 中,样式由一个对象来表示,使用 jss-plugin-extend 可以将这些对象进行组合,使得与传统 CSS 相同的样式重用方式也可以在应用中使用。

该插件对于需要频繁的样式扩展及修饰、组合操作等场景特别有用,可以帮助开发者快速且灵活处理样式。

安装

使用 npm 进行安装:

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

使用方法

基础使用

首先,导入需要使用的库:

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

然后,创建一个 JSS 实例并安装 extend 插件:

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

最后,使用 extend() 方法对样式进行扩展调用即可:

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

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

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

在这个例子中,baseStylesadditionalStyles 都是样式对象,其中 baseStyles 用于扩展样式,additionalStyles 则用于合并样式。同时,finalStyles 经过了 baseStylesadditionalStyles 的扩展、合并和属性新增,最终生成样式输出。

深度扩展

jss-plugin-extend 还提供了深度扩展样式的能力,允许开发者在扩展样式时仅针对某些属性进行继承或改写操作。

当两个样式层级深度不一致时,extend() 方法默认仅针对顶级对象进行扩展:

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

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

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

如上例所示,当两个样式对象存在层级嵌套时(例如 baseStyles 中的 &:hover),jss-plugin-extend 并不会在扩展时考虑嵌套的对象,这种默认操作称为“浅扩展”。

要实现深度扩展,可以在样式对象中使用 $extend 值(该值应先进行 JSS 处理),用于明确指定需要扩展的属性及其扩展类型。使用 $inherit 值可将指定属性标记为可继承,使用 $merge 值可将指定属性标记为可合并。

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

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

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

在这个例子中,基础样式中使用了 $title 作为深度扩展标记,同时 otherStyles 中同样针对 $icon 属性使用了深度扩展。在 finalStyles 中使用了 $extend 来启用深度扩展功能,使用 $inherit$merge 分别标记属性为可继承和可合并。

示例

一个使用 jss-plugin-extend 的基本样式示例,包括浅拷贝、深复制用法:

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

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

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

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

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

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

输出结果:

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

总结

jss-plugin-extend 是一个非常有用的扩展工具,可以帮助开发者节约大量时间和精力,减少样式开发成本。使用 jss-plugin-extend 进行样式扩展时需要注意原样式对象及扩展对象,在指定要修改的属性时,使用浅拷贝、深复制等方法,以确保样式不会被其他代码修改。

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


猜你喜欢

  • npm 包 jss-plugin-template 使用教程

    前端开发面对着不断涌现的需求和复杂性,需要不断的学习和工具的支持。其中,jss-plugin-template 是 jss 一款非常实用的插件,它可以帮助我们更好的管理样式,并提升代码的可维护性。

    4 年前
  • npm 包 @ember/string 使用教程

    在前端开发中,字符串处理是最常见的操作之一。而 @ember/string 是一个可以帮助我们处理字符串的 npm 包。下面让我们来详细了解一下该包的使用教程。 安装 @ember/string 首先...

    4 年前
  • npm 包 @ember-data/canary-features 使用教程

    前言 @ember-data/canary-features 是一个 Ember Data 的插件。它提供了一些实验性的特性,方便开发者在学习和实验新功能时使用。本文将介绍如何使用 @ember-da...

    4 年前
  • npm 包 @ember/ordered-set 使用教程

    前言 @ember/ordered-set 是一个 Ember.js 框架中常用的 npm 包,它提供了一个有序集合的实现,可以用于数据操作,如去重、排序等。这篇文章将会教你如何正确地使用这个 npm...

    4 年前
  • npm 包 @ember/render-modifiers 使用教程

    前言 在 Ember.js 中,我们通常会用到组件以及 modifier 这两个概念。而 @ember/render-modifiers 就是一个可以帮助我们更好地使用 modifier 的 npm ...

    4 年前
  • npm 包 babel6-plugin-strip-heimdall 使用教程

    前言 babel6-plugin-strip-heimdall 是一个用于 Babel6 的插件,在构建前端项目时对代码进行优化,去除应用中不必要的 Heimdall 监控代码。

    4 年前
  • npm 包 @ember-data/adapter 使用教程

    在 Ember.js 中,@ember-data/adapter 是一个非常重要的 npm 包,可以让我们更加方便地与后端 API 进行交互。本文将介绍如何使用 @ember-data/adapter...

    4 年前
  • npm 包 @ember-data/debug 使用教程

    在使用 Ember.js 进行 Web 前端开发时,可能需要使用到 @ember-data/debug 这个 npm 包。这个包为 Ember.js 提供了一个调试工具,可以方便地打印出 Ember....

    4 年前
  • npm 包 @ember-data/model 使用教程

    前言 @ember-data/model 是 Ember.js 框架中的一个插件,可以帮助开发者简化数据处理和数据操作。它提供了强大的功能,包括模型定义,增删改查等,使得前端开发变得更加高效和便捷。

    4 年前
  • npm 包 @ember-data/private-build-infra 使用教程

    标题:深入了解 @ember-data/private-build-infra:npm 包的使用教程 随着前端开发的日益发展,npm 包已成为前端开发中不可或缺的组成部分。

    4 年前
  • npm包@ember-data/record-data使用教程

    介绍 @ember-data/record-data是一个帮助维护记录数据的npm包,它可以在应用程序中处理类似保存、删除和更新记录等任务。 安装 在命令行中输入如下命令安装: --- -------...

    4 年前
  • npm 包 @ember-data/serializer 使用教程

    @ember-data/serializer 是一个 Ember Data 库中定义的用于序列化和反序列化模型数据的 npm 包。使用 @ember-data/serializer,我们可以方便地处理...

    4 年前
  • npm 包 @ember-data/store 使用教程

    随着前端技术的发展,越来越多的开发者开始关注和使用 @ember-data/store 这个 npm 包来管理和处理应用程序中的数据。本篇文章将详细介绍如何使用此 npm 包来优化你的前端应用程序。

    4 年前
  • npm 包 form-auto-content 使用教程

    随着前端开发的不断发展,各种前端工具和库层出不穷,其中 npm 包作为前端开发中的重要工具之一,可以帮助我们更加高效地开发项目。本文将介绍一款名为 form-auto-content 的 npm 包,...

    4 年前
  • npm 包 compile-json-stringify 使用教程

    在前端开发中,处理 JSON 数据是非常常见的任务之一。而 npm 包 compile-json-stringify 就是专门为了编译 JSON 数据并输出字符串而设计的。

    4 年前
  • npm 包 @glimmer/di 使用教程

    介绍 @glimmer/di 是一个现代的 Javascript 依赖注入库,它提供了解耦和高内聚的代码设计方案。它是由 Glimmer.js 团队创建的,它是 Ember.js 的视图层框架,用于创...

    4 年前
  • npm 包 json-strify 使用教程

    概述 json-strify 是一个可以将 JavaScript 对象转化为 JSON 字符串的 npm 包。这个包的功能十分简单,但是却非常有用,因为在前端开发中,我们经常需要将 JavaScrip...

    4 年前
  • npm 包 @glimmer/resolver 使用教程

    前言 在 Web 开发中,我们经常需要使用各种类库和框架,这些类库和框架的安装和使用需要使用包管理工具来解决。在 JavaScript 生态中使用最广泛的包管理工具是 npm。

    4 年前
  • npm 包 *ember-devtools* 使用教程

    如果你是一个熟练的前端开发者,你一定听说过 ember.js。这是一个流行的 JavaScript 框架,用于构建大型 Web 应用程序。在 Ember.js 中,开发者需要通过大量的代码来构建组件、...

    4 年前
  • npm包ember-test-waiters使用教程

    在Web前端开发中,自动化测试已经成为很多公司日常开发流程的重要一环。在其中,ember-test-waiters 是一个非常方便的npm包,它可以帮助开发者处理异步测试代码中的各种的等待逻辑,减少了...

    4 年前

相关推荐

    暂无文章