npm 包 @matthamlin/resp 使用教程

背景

在前端开发中,我们常常需要解决响应式布局的问题,如针对不同设备的不同屏幕尺寸进行布局调整。这时候我们可以使用一些响应式布局工具/框架来协助我们完成布局工作,npm 包 @matthamlin/resp 就是其中之一。本文主要介绍如何使用 @matthamlin/resp 工具实现响应式布局。

@matthamlin/resp 是什么?

@matthamlin/resp 是一个轻量级(2KB)的 React 组件库,提供了一些响应式布局的实用工具。该库有以下功能特点:

  • 具有强大的分辨率表达能力:使用分辨率宽度值来定义布局,而非使用 Xs, S, M, L, XL 等抽象的术语来定义。
  • 提供了一些常用的布局尺寸(如 25%, 50%, 75%, 100%)来减少手写样式的代码量。
  • 提供了一些针对不同大小屏幕的 media query 值。

如何使用 @matthamlin/resp?

安装

可以使用 npm 或 yarn 安装 @matthamlin/resp:

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

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

基本使用

@matthamlin/resp 的核心组件是 Resizable,并且它具有一个 name 属性,用于定义响应式行为的内部名称。

在使用 @matthamlin/resp 前,建议先设置一个媒体查询中断点(最小宽度)。例如,Responsive 中通过 setBreakpoints 方法来设置中断点:

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

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

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

接下来,就可以在组件中引入 Resizable 组件并使用了:

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

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

上面代码是一个简单的 Resizable 组件,实现对嵌入的元素进行响应式布局。

其中,name 属性用于定义组件内部的名称,它通常用来作为 window.matchMedia 方法的键值使用。

在默认情况下,Resizable 组件将占用容器的 1/3 大小,并且在容器小于 300px 的时候,停止计算边缘。

响应式行为

当我们指定 Resizable 的 width 属性为特定的尺寸(例如 50%)时,Resizable 将始终占用屏幕的一半宽度。

当我们指定 Resizable 的 minWidth 和 maxWidth 属性时,Resizable 将始终保持最小和最大宽度,不管屏幕的大小如何。

例如,如果我们希望在大屏幕上使用 Resizable 宽度占 1/3,而在小屏幕上宽度占 1/2,我们可以通过以下代码实现:

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

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

上面的代码中,minWidth 和 maxWidth 属性以对象的形式传递,并分别使用 tablet 和 desktop 关键字指定了不同设备上的最小和最大宽度。

媒体查询

@matthamlin/resp 类库提供了一些自定义的 media query 值,可以通过以下方法来获取它们:

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

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

其中 Responsive.getMax 方法传递一个字符串参数,指定自定义的 media query 名称,返回对应的 max-width 的值,同理, Responsive.getMin 传递的参数是对应的 min-width 的值。

使用 bestMatch 属性

bestMatch 是 Resizable 组件的一个属性,它用于指定组件的尺寸行为。

当 bestMatch 设置为 true 时,组件的默认大小将是其最匹配的 break 长度。

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

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

上面代码中,当 bestMatch 为 true 时,组件将尽可能的在布局中寻找最佳匹配尺寸。

总结

通过本文,我们了解了 @matthamlin/resp 这个 npm 包,并学习了如何使用它来实现响应式布局。在实际项目中,我们可以根据不同的需求选择最适合的响应式布局方案,@matthamlin/resp 是其中之一可供参考。

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


猜你喜欢

  • npm 包 @niik/ts-node 使用教程

    简介 @niik/ts-node 是一个基于 ts-node 的 TypeScript 运行时。与 ts-node 不同的是,它允许您使用 TypeScript 编写 Node.js CLI 应用程序...

    4 年前
  • npm 包 @nathanfaucett/hash_code 使用教程

    简介 在前端开发中,常常需要使用哈希函数实现散列化的操作,例如用于实现 cookie 或者缓存数据等等。而 @nathanfaucett/hash_code 这个 npm 包就提供了一种高效的哈希算法...

    4 年前
  • npm 包 @nathanfaucett/immutable-list 使用教程

    简介 @nathanfaucett/immutable-list 是一个高效且易于使用的 JavaScript 不可变链表实现。这个包提供了丰富的 API 和一些很有用的函数。

    4 年前
  • npm 包 @nathanfaucett/immutable-hash_map 使用教程

    在前端开发过程中,我们常常需要使用到数据结构。其中,hash_map 是一种常用的数据结构,它能够快速地在大量数据中查找或者插入元素。而在 JavaScript 开发中,有一个很好用的 immutab...

    4 年前
  • npm 包 @nathanfaucett/i18n 使用教程

    在多语言的前端项目中,国际化 (i18n) 可以起到重要的作用。在本文中,我们将介绍 npm 包 @nathanfaucett/i18n,该包通过简单而有效的方式支持多语言实现。

    4 年前
  • npm 包 @nathanfaucett/immutable-record 使用教程

    在前端开发领域,不可变数据结构已经成为了一种非常流行的编程范式。而 @nathanfaucett/immutable-record 这个 npm 包正是一种非常方便有效的不可变数据结构工具。

    4 年前
  • npm 包 @nathanfaucett/immutable-set 的使用教程

    前言 在前端开发中,我们经常需要更新一个对象中的某个属性,但是直接修改一个对象的属性是不安全的,有可能会引起一些未知的错误。为了解决这个问题,社区中有很多 IMutable 数据结构的库,@natha...

    4 年前
  • 使用 @nathanfaucett/immutable-vector 的指南

    介绍 在前端开发中,我们经常需要使用数组来组织数据。但是,原生的 JavaScript 数组有很多限制和缺陷,如不可变性、单一类型限制等等。为了解决这些问题,我们可以使用许多第三方库来扩展原始的 Ja...

    4 年前
  • npm 包 @nathanfaucett/index_of 使用教程

    前言 在前端开发中,我们经常会遇到需要查找数组中某个元素的位置的场景。虽然原始的 JavaScript 数组方法提供了 indexOf() 方法,但是其功能十分有限。

    4 年前
  • npm 包 @nathanfaucett/inflections 使用教程

    在前端开发中,字符串操作是开发工作中不可或缺的一部分。对于开发者来说,处理字符串时要考虑诸多因素,如大小写、单复数、动词变位等。在这篇文章中,我们将为大家介绍一种常用的 npm 包 @nathanfa...

    4 年前
  • npm 包 @nathanfaucett/is_date 使用教程

    前言 前端开发中, 日期时间格式的处理非常普遍,我们需要对日期做格式化、计算、比较等处理,而 JavaScript 的 Date 对象为我们提供了相应的 API。但是,在实际开发中,我们需要使用较多的...

    4 年前
  • npm包@nathanfaucett/is_decimal 使用教程

    在前端开发中,经常需要对数字进行处理和操作,其中一种操作就是判断一个数字是否为十进制数。而这时,其中一个非常方便的工具就是npm包@nathanfaucett/is_decimal。

    4 年前
  • npm包 @nathanfaucett/is_document 使用教程

    简介 @nathanfaucett/is_document是一个基于javascript开发的npm包,用于判断一个对象是否为document类型。这个包非常适合前端开发者在开发中对document对...

    4 年前
  • npm 包 @niik/tslint-microsoft-contrib 使用教程

    在前端开发中,为了保证代码的质量和风格统一,通常会使用代码检查工具。@niik/tslint-microsoft-contrib 是一款 TSLint 的扩展,它提供了一系列的规则和风格检查,帮助我们...

    4 年前
  • npm 包 @nathanfaucett/inherits 使用教程

    在前端开发中,我们经常需要继承某个类,来实现代码的复用和模块化。@nathanfaucett/inherits 是一个 npm 包,它提供了一种简单、轻量级的继承方式。

    4 年前
  • npm 包 @nathanfaucett/is_alphabetic 使用教程

    在前端开发中,常常需要对字符串进行操作,其中最常见的操作之一就是判断字符串中只包含字母。这时候,如果每次都自己写代码进行判断,就显得比较繁琐且容易出错。好在有开发者为我们提供了方便的 npm 包—— ...

    4 年前
  • npm 包 @nathanfaucett/is_alphanumeric 使用教程

    在前端开发中,我们经常需要校验用户输入的字符串是否只包含英文字母和数字,这时候就需要用到一个能够判断字符串是否是英文字母和数字组合的工具。@nathanfaucett/is_alphanumeric ...

    4 年前
  • npm 包 @nathanfaucett/is_arguments 使用教程

    #npm 包 @nathanfaucett/is_arguments 使用教程 ##前言 在前端开发中,处理函数参数是一项常见的任务。而 @nathanfaucett/is_arguments 是一个...

    4 年前
  • npm包@nathanfaucett/is_array使用教程

    @nathanfaucett/is_array是一个小型的npm模块,专门用于检测javascript的变量是否为数组,使用非常方便,下面我们详细介绍一下这个npm包的使用方法。

    4 年前
  • npm 包 @nathanfaucett/is_array_like 使用教程

    在前端开发中,我们经常需要进行类型判断,特别是数组类型的判断。@nathanfaucett/is_array_like 是一个小巧实用的工具库,提供了丰富的数组类型判断方法,尤其适合于开发中对数组类型...

    4 年前

相关推荐

    暂无文章