ITPub博客

首页 > 应用开发 > Javascript > 如何搭建使用微信扫码H5公众号React创建盘口数据响应式机器人二开React组件(上)

如何搭建使用微信扫码H5公众号React创建盘口数据响应式机器人二开React组件(上)

原创 Javascript 作者:NLigg 时间:2022-06-11 21:07:31 0 删除 编辑

【TG_duoteJG】多特工作室杰哥duotee.com版权所有,禁止转载

由于 React 微信飞鸟组件是描述GT江湖 UI 特定部分的运营源码 JavaScript 代码片段,因此它们实际上仿新圣源码是相互独立的。作为其飞鸟新圣源码定义的一部分,它们的飞鸟二开视觉风格通常嵌入其中。考虑到它们可能用于不同的位置和布局,这可能非常有用。

但是在可重用组件中嵌入样式也有一些缺点。在响应性的情况下可以看到一个例子。假设您希望一行文本(例如标题)在高度和宽度方面完全填充为其保留的空间,而不是换行——所有这些都无需为每种可能的情况编写自定义 CSS 规则。(您可能需要的示例包括业务标语、广告消息或嵌入在导航栏组件中的文本。)

CSS 和可移植性

在定义响应式 React 组件的样式时,您需要考虑每个可能的父组件的大小、布局或样式,这些父组件可能会包装它以相应地调整字体大小。正如您所想象的那样,考虑所有可能的容器大小是不可行的——即使您可以使用 CSS 来做到这一点。您将追逐太多的视口场景,以至于编写媒体查询并不实用。但除了媒体查询之外,CSS 中并没有真正的方法来确保文本块总是适合一行。

创建可重用的 React 组件

值得庆幸的是,一些 React 库可以用来轻松解决这个问题。它们允许您定义可重用的 React 组件,无论可重用组件放置在哪个容器中,文本的行为都符合预期。在本文结束时,您将能够使用这些库来解决上述文本拟合问题并制作一个可重用的组件。所以,让我们来看看你应该知道的一切,以使你的文本自动适应 React 中的可用空间。

首先,我们将看看为什么面对这样的问题如此重要,以及为什么常见的解决方案可能还不够,尤其是在使用 React 时。然后, react-textfit将展示 React 库并用于实现单行和多行文本的解决方案

可重用组件中的文本拟合问题

让我们看一下下面的演示,用一个例子来解释文本拟合问题。

目标是使标题适合为其保留的空间,而不管用户屏幕的大小。在此示例中, 视口单位用于定义 font-size标题。因此,在调整代表用户屏幕的红色边框的大小时 iframe,标题将始终适合其父级 <div>。所以这个方法当然可以让标题文字适应任何屏幕宽度。但是, Headline样式化的组件不可重用。这是因为它的设计只考虑了这个特定的文本。通过添加到标题文本或调整 parent <div>的大小,文本将不再适合一行。(您可以尝试更改演示中的文本。)我们真的希望可重用组件比这更具适应性。

如前所述, CSS 媒体查询提供了另一种解决方案,它允许您根据屏幕大小调整文本字体大小。当考虑整个网页时,这是理想的解决方案。但是用媒体查询来追逐无数可能的容器宽度是不切实际的。这将导致大量工作。另外,并且会使您的组件的便携性大大降低。

react-textfit作为响应式 React 文本的解决方案

因此,让我们看看 react-textfitReact 库如何使文本自动适应可用空间,真正使组件可重用。

如您所见,上述问题都有。多亏了 react-textfit,您现在可以更改标题或调整父级的大小 <div>,同时保持标题紧贴可用空间。

Textfit工作原理

现在,让我们详细看看它是如何 react-textfit工作的。

一个用于在任何可重用组件中拟合标题和段落的库。它可以有效地找到正确的匹配,并适用于任何 CSS 样式配置,例如 padding、 line-height等。

您可以通过启动以下命令将其添加到您的依赖项中:

<span style="background-color:#292d3e"><span style="color:#bfc7d5"><code class="language-bash"><span style="color:#82aaff">npm</span> <span style="color:#82aaff">install</span> react-textfit --save
</code></span></span>

然后您将能够访问该 Textfit组件以适应任何文本,如下所示:

<span style="background-color:#292d3e"><span style="color:#bfc7d5"><code class="language-javascript">import <span style="color:#c792ea">{</span> Textfit <span style="color:#c792ea">}</span> from <span style="color:#c3e88d">'react-textfit'</span><span style="color:#c792ea">;</span>
</code></span></span>

Textfit将被翻译成 <div>HTML 元素,并允许您将单行和多行文本放入任何可重用的组件或 HTML 元素中。

要使用它,您只需将其设置为换行文本,如下所示:

<span style="background-color:#292d3e"><span style="color:#bfc7d5"><code class="language-javascript"><span style="color:#89ddff"><</span>Textfit<span style="color:#89ddff">></span>
  Sample text
<span style="color:#89ddff"><</span><span style="color:#89ddff">/</span>Textfit<span style="color:#89ddff">></span>
</code></span></span>

或任何包含以下内容的 HTML 元素:

<span style="background-color:#292d3e"><span style="color:#bfc7d5"><code class="language-javascript"><span style="color:#89ddff"><</span>Textfit<span style="color:#89ddff">></span>
  <span style="color:#89ddff"><</span>span<span style="color:#89ddff">></span>Sample text<span style="color:#89ddff"><</span><span style="color:#89ddff">/</span>span<span style="color:#89ddff">></span>
<span style="color:#89ddff"><</span><span style="color:#89ddff">/</span>Textfit<span style="color:#89ddff">></span>
</code></span></span>

既然 Textfit是 a  <div>,你可以通过 React 属性给它传递 CSS 规则 style,如下:

<span style="background-color:#292d3e"><span style="color:#bfc7d5"><code class="language-javascript"><span style="color:#89ddff"><</span>Textfit
  style<span style="color:#89ddff">=</span><span style="color:#c792ea">{</span><span style="color:#c792ea">{</span><span style="color:#c3e88d">"width"</span><span style="color:#89ddff">:</span> <span style="color:#c3e88d">"200px"</span><span style="color:#c792ea">}</span><span style="color:#c792ea">}</span>
<span style="color:#89ddff">></span>
  Sample text
<span style="color:#89ddff"><</span><span style="color:#89ddff">/</span>Textfit<span style="color:#89ddff">></span>
</code></span></span>

或者通过 将其分配给 CSS 类 className,如下所示:

<span style="background-color:#292d3e"><span style="color:#bfc7d5"><code class="language-javascript"><span style="color:#89ddff"><</span>Textfit
  className<span style="color:#89ddff">=</span><span style="color:#c792ea">{</span><span style="color:#c3e88d">"divWidth200"</span><span style="color:#c792ea">}</span>
<span style="color:#89ddff">></span>
  Sample text
<span style="color:#89ddff"><</span><span style="color:#89ddff">/</span>Textfit<span style="color:#89ddff">></span>
</code></span></span>

Textfit 道具

Textfit还附带了一些道具,可用于根据需要适合您的文本。让我们全部看看:

  • mode是一个可以采用两个值的字符串: single或 multi. 它定义了组件用来适应文本的方法。 single模式应该用于标题,模式应该用于 multi段落。默认值为 multi。
  • min是一个数字,表示允许文本达到的最小字体大小(以像素为单位)。默认值为 1。
  • max是一个数字,表示文本允许达到的最大字体大小(以像素为单位)。默认值为 100。
  • forceSingleModeWidth是一个布尔值,仅在 single模式期间使用,以使 Textfit组件完全忽略元素的高度。默认值为 true。
  • throttle是一个数字,表示以毫秒为单位的窗口调整大小节流阀。默认值为 50。
  • onReady是一个在文本适合时调用的函数。

其中最重要的两个是 min和 max,它们允许您分别设置字体大小的下限和上限。然后是 modeprop,它定义了 Textfit组件的行为方式。这需要更详细的解释。所以,让我们看看这两种模式的实际效果。


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70015022/viewspace-2900080/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
系统搭建开发盘定制可联系电报Telegram:duoteJG

注册时间:2022-03-10

  • 博文量
    15
  • 访问量
    7114