npm 包 @boardom/react-container-query 使用教程

随着各种设备尺寸逐渐增多,响应式设计(responsive design)已经成为前端开发不可或缺的一环。而容器查询(container query)则是一种让我们可以在组件内部进行条件渲染的方式。@boardom/react-container-query 是一款支持容器查询的 React 组件库。本文将介绍如何使用 @boardom/react-container-query。

安装

使用 npm 安装即可:

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

基本用法

@boardom/react-container-query 提供了 ContainerQuery 组件,我们可以在组件内部使用该组件进行容器查询。 ContainerQuery 需要传入一个查询列表(array of objects)作为属性,每个对象包含一个 key 字段和一个 query 字段,表示我们要查询的条件。例如:

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

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

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

上述代码中,我们定义了一个 queries 列表,包含三个查询条件:当容器宽度不小于 320px 时,使用 sm 样式;当容器宽度不小于 768px 时,使用 md 样式;当容器宽度不小于 1024px 时,使用 lg 样式。在实际渲染中,ContainerQuery 会将当前容器的宽度和查询条件进行比较,并将结果作为 params 属性传入内部的子组件。子组件可以根据 params 属性来渲染不同的 UI。

更多查询条件

除了 minWidth@boardom/react-container-query 还支持其他查询条件:

  • maxWidth: 容器最大宽度
  • minHeight: 容器最小高度
  • maxHeight: 容器最大高度
  • minAspectRatio: 容器最小长宽比
  • maxAspectRatio: 容器最大长宽比
  • orientation: 容器方向(portraitlandscape

我们可以将多个查询条件组合在一起使用。

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

基于样式的查询

除了将查询条件硬编码到 JS 中,@boardom/react-container-query 还支持基于样式的查询。我们可以在 CSS 中定义 @container 规则,在查询列表中指定一个 CSS 类名,然后在渲染时设置容器的 className。这样,查询与样式就可以一一对应了。

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

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

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

总结

@boardom/react-container-query 是一款功能强大的容器查询库,它为我们提供了一种在组件内部进行条件渲染的方法。本文介绍了 @boardom/react-container-query 的基本用法以及更高级的查询方法。通过学习本文的内容,读者可以更好地利用 @boardom/react-container-query 进行前端开发,并实现更加灵活的响应式设计。

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


猜你喜欢

  • npm 包 hash.block 使用教程

    在前端开发中,通常需要使用哈希算法来加密数据或者生成唯一标识符。在 Node.js 环境中,可以使用 hash.block 这个 npm 包来实现哈希算法的操作。本文将介绍 hash.block 的使...

    4 年前
  • npm 包 rbx-resources 使用教程

    介绍 rbx-resources 是一个用于管理 Roblox 游戏资源的 npm 包。它可以自动化处理资源发布、版本控制、依赖管理等重要功能,旨在方便前端开发人员进行 Roblox 游戏的资源管理。

    4 年前
  • npm 包 node-red-contrib-gitlab2 使用教程

    在前端开发中,对于 GitLab 的使用是一项必不可少的技能。但是,对于 GitLab API 的使用可能会让开发者感到困惑。这时候,我们可以使用 npm 包 node-red-contrib-git...

    4 年前
  • npm 包 ulixee 使用教程

    Ulixee 是一款基于 Node.js 和 Chromium 的自动化 Web 浏览器,可以模拟真实的用户行为,支持多个浏览器标签页的控制,以及浏览器性能和报告分析。

    4 年前
  • npm 包 file-cloner 使用教程

    前言 在前端开发中,经常需要把已经存在的文件(如 js、css 等文件)复制到指定的目录下,并可能需要做些特殊的处理,比如重命名、替换等等。在这种情况下,开发者需要手动复制粘贴或者写一些脚本来实现。

    4 年前
  • npm 包 huben 使用教程

    huben 是一款用于前端组件推荐和管理的 npm 包,它帮助前端开发者更加方便快捷地使用和管理组件。在本文中,我们将提供 huben 的使用教程,包含安装、配置和示例代码,以帮助你更好地了解和运用它...

    4 年前
  • npm 包 apng2gif-bin 使用教程

    npm 包 apng2gif-bin 使用教程 APNG(Animated Portable Network Graphics)是 PNG 文件格式的扩展,可以制作更为丰富的动态图像。

    4 年前
  • npm 包 react-router-transition-group 使用教程

    npm 包 react-router-transition-group 使用教程 1. 概述 react-router-transition-group 是一个 react-router 的插件,它可...

    4 年前
  • npm 包 my-dish 使用教程

    简介 my-dish 是常见的前端项目脚手架,提供了一些常见的项目配置,包括 webpack 配置、eslint、babel 配置等。使用 my-dish 可以帮助我们快速搭建前端开发环境。

    4 年前
  • npm 包 react-console-logger 使用教程

    前言 在开发前端项目的过程中,常常需要处理各种日志信息以及调试信息,而 console.log 是前端最常用的输出信息的方式。然而,在大型项目中,很难通过简单的 console.log 来定位代码中的...

    4 年前
  • npm 包 thinkkoa_cli 使用教程

    在前端开发中,使用工具和框架可以极大地提高开发效率和代码质量。而 npm 是 JavaScript 社区中广泛使用的包管理工具,通过安装各种 npm 包,我们可以快速构建 Web 应用程序并加快开发进...

    4 年前
  • npm 包 ray-pagination 使用教程

    前言 在前端开发中,分页是一个常见的需求,我们需要对大量数据进行分页展示,提高用户体验。而 ray-pagination 是一个基于 Vue.js 的通用分页组件,它可以方便地应用于不同的前端项目中。

    4 年前
  • npm 包 xc-currency-mask 使用教程

    简介 xc-currency-mask 是一个基于 React 开发的 NPM 包,用于实现货币格式化的功能。它可以帮助你在前端开发的过程中快速地将数值转换成带有货币符号、千分位分隔符的字符串,并且保...

    4 年前
  • npm 包 split-test-selector 使用教程

    split-test-selector 是一个优秀的 npm 包,可以帮助前端开发者实现 A/B 测试等分析和优化功能。本文将详细介绍该包的使用教程,旨在提供深度和学习以及指导意义。

    4 年前
  • npm 包 ipsumlorem 使用教程

    在前端开发中有时候需要使用一些假数据来测试前端的表现和性能,而 ipsumlorem 就是一个非常方便的假数据生成工具。它支持多种数据类型和多种语言,并且更重要的是它非常容易使用。

    4 年前
  • npm 包 njo 使用教程

    njo 是一个可以帮助前端开发者在命令行中生成 JavaScript 代码的 npm 包,它可以快速的生成常见的 JavaScript 文件例如:组件,类库,服务,以及一些常用的设计模式。

    4 年前
  • npm 包 atlassian-connect-firestore 使用教程

    Atlassian Connect 是一种针对 Atlassian 应用程序平台的插件开发框架,可以通过 Atlassian Connect 插件来扩展和增强 Atlassian 应用程序的功能。

    4 年前
  • npm 包 @delaguardo/graphlib 使用教程

    简介 @delaguardo/graphlib 是一个基于 JavaScript 的前端图形库,在前端领域应用广泛,可用于构建各类复杂的图形结构。它提供了许多优秀的数据结构和算法,能够轻易地帮助你创建...

    4 年前
  • npm 包 theme-demo 使用教程

    在前端开发中,选择合适的主题对于提高用户体验和视觉效果至关重要。为了更高效地实现主题切换,许多开发者会选择使用已有的 npm 包。 本文主要介绍一个非常实用的 npm 包:theme-demo,它可以...

    4 年前
  • npm 包 create-react-myy 使用教程

    在前端开发中,React 是一个非常流行的 JavaScript 库,用于构建用户界面。为了提高效率,我们可以使用第三方库和工具来帮助我们加快开发速度。create-react-myy 就是一个基于 ...

    4 年前

相关推荐

    暂无文章