npm包 react-controllable-renderless使用教程

React是一种用于构建用户界面的 JavaScript 库,它成为了前端框架中最流行的一种。提高 React 应用的可控性和可操作性正因为此成为了许多开发人员的首要任务。一个名为 react-controllable-renderless 的 npm 包就是针对这一目标而诞生的。本文将介绍该包的详细使用方法,包括安装、基本用法、参数解释以及实际应用等。

安装

在使用此程序之前,我们需要在命令行工具中运行以下命令来安装该包:

npm install react-controllable-renderless

基本用法

react-controllable-renderless 提供了一个可以控制渲染的 HTML 元素,我们只需要在属性中传递我们需要控制的数据,就可以实现组件控制容器的显示行为。

首先,引入 react-controllable-renderless 包中的 ControllableContainer 组件:

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

这里需要注意,ControllableContainer 组件仅从该包导入,而不是从 react 包或其他包导入。

然后使用 ControllableContainer 组件来包裹需要控制显示的元素:

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

以上代码展示了如何通过在外部包装器中设置 show 属性以控制内部包装器的显示。如果 show 的值为 true,内容将被渲染到 DOM 上。如果为 false,则该内容不会被呈现。实际上,ControllableContainer 是一个可控制的“无渲染”容器,它只是渲染它包裹的内容而不是自身。

此外,我们可以使用几个其他属性来控制渲染表现:

  • duration: 容器的过渡时间,单位为毫秒,默认值为 300 毫秒。
  • easingFunction: 每次出现和消失时的动画效果,默认值为“ease-in-out”。
  • transitionProperty: 设定过渡属性,例如“opacity”或“display”。默认为“opacity”。
  • hideOnOutsideClick: 点击容器之外的元素时是否自动隐藏,默认为 true。
  • showOnInitialMount: 组件是否在挂载时就展示(而不是在控制器改变时),默认为 true。

例如,可以这样设置:

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

这将显示包装器,但隐藏其包含的内容。容器将需要另一个组件(如按钮)控制展示。

参数解释

以上列出的属性不是此包唯一的属性集。接下来我们解释一下该npm包的其他属性。

style

  • Type: object
  • Default: {}

style 属性是用于指定包装器样式的 JSS 对象。

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

以上示例包装器将呈现红色文本并设置黄色背景。

onShow/hide

  • Arguments: isVisible - 可见性状态 true or false
  • Default: null

这些回调是用于处理内部包装器是否可见的方法。

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

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

以上示例当包装器被隐藏后,handleShow() 方法将被调用。

stopPropagation

  • Type: boolean
  • Default: false

该属性处理元素被单击时事件冒泡的配置。如果为 true,容器将阻止事件冒泡。

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

如果以上示例中容器被单击,该事件将无法冒泡到其父级 div 中。

示例

最后,让我们看看一个例子,使用 react-controllable-renderless 包包装一个弹出窗口。

首先,要创建点击打开弹出窗口的按钮:

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

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

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

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

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

在此代码中,我们创建处理 popupVisible 状态的 togglePopup() 方法。单击按钮将调用此方法以打开或关闭弹出窗口。

在 ControllableContainer 中设置 show 属性来控制弹出窗口是否显示。单击关闭按钮时,切换弹出窗口的显示状态。

这个包使得渲染反转变为了可能,这很常用于 React 中的许多情况。特别是在与一些复杂的动态可控组件交互时,它尤其有用,你可以使用此方法将它们渲染在一起。

综上所述,react-controllable-renderless 包绝对是新进 React 开发者必须熟悉的 npm 包之一。它提供的一个可控制的低级 HTML 容器使其具有洞见深刻的创新性,这将彻底地改变我们在日常 React 开发中的方法论。

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


猜你喜欢

  • npm 包 absolute-path-converter 使用教程

    在前端开发中,我们经常需要处理文件路径,使用绝对路径可以避免出现文件路径错误的情况。绝对路径一般是以根目录开头的路径,为了方便在文件中使用,我们通常会将相对路径转换为绝对路径。

    3 年前
  • npm 包 json-local-configurator 使用教程

    简介 json-local-configurator 是一个简单的 npm 包,可以帮助前端开发人员快速加载本地 JSON 配置文件,并提供简单的 API 进行配置参数的读写。

    3 年前
  • npm 包 fis3-postprocessor-webp 使用教程

    WebP 是一种由 Google 公司开发的新型图片格式,采用无损和有损双重压缩技术,相对于传统的 JPG 和 PNG 格式,WebP 可以更有效地减小图片文件大小,从而加速页面加载速度,提升用户体验...

    3 年前
  • npm 包 symbol-tostring 使用教程

    介绍 symbol-tostring 是一个方便字符串化 Symbol 的 npm 包,通过它,开发者可以将 Symbol 类型的变量方便地转化为字符串类型,方便存储和处理。

    3 年前
  • npm 包 ng-ax-path 使用教程

    前言 随着前端技术的不断发展,前端开发变得越来越重要,而随之而来的是开发效率的要求也越来越高。而 npm 包的使用,可以为我们的前端开发提供很多便利。在本文中,我们为大家介绍一个非常有用的 npm 包...

    3 年前
  • npm 包 makestatic-highlight 使用教程

    在前端开发中,经常需要处理代码高亮的问题。而 npm 包 makestatic-highlight 帮助我们快速地实现代码高亮功能,并且使用非常简单。本文将带领大家掌握 makestatic-high...

    3 年前
  • npm 包 makestatic-graph-resources 使用教程

    前言 在现代的 Web 开发中,静态资源的管理已经变得越来越重要。而 makestatic-graph-resources 就是一款用于生成静态资源的 npm 包。

    3 年前
  • npm 包 makestatic-http-cache 使用教程

    什么是 makestatic-http-cache? makestatic-http-cache 是一个 Node.js 模块,它可以为静态文件添加 HTTP 缓存头,从而提高网站的访问速度。

    3 年前
  • npm 包 makestatic-inline-data 使用教程

    在前端开发中,我们经常需要处理一些静态资源,如图片、CSS、字体等。而这些资源都需要在部署前经过处理,以便能够更好地优化应用的性能。而 makestatic-inline-data 这个 npm 包就...

    3 年前
  • npm 包 makestatic-manifest 使用教程

    什么是 makestatic-manifest makestatic-manifest 是一个 npm 包,它提供了一种为静态文件生成资源映射的方式。它适用于需要手动管理静态资源的项目,可以帮助我们生...

    3 年前
  • npm 包 makestatic-optimize-css 使用教程

    前言 在前端开发过程中,为了加快网站页面的加载速度,我们通常会对样式表进行压缩优化处理。而 makestatic-optimize-css 是一个基于 Node.js 的 npm 包,它可以帮助我们将...

    3 年前
  • npm 包 makestatic-optimize-image 使用教程

    在前端开发中,图片是一个非常重要的部分,然而过大的图片会降低页面加载速度。为了解决这个问题,我们可以使用一些工具来优化和压缩图片。makestatic-optimize-image 就是一种很好的选择...

    3 年前
  • npm 包 makestatic-optimize-html 使用教程

    在进行前端开发时,我们通常需要优化网页的加载速度和性能。其中,HTML 是网页的基础,优化 HTML 可以带来很大的效果。为此,我们可以使用一个名为 makestatic-optimize-html ...

    3 年前
  • npm 包 makestatic-pack-webpack 使用教程

    在前端开发中,使用 npm 包已经成为了必不可少的部分。其中,有一款名为 makestatic-pack-webpack 的包在前端项目中有着非常重要的作用。本文将为你详细介绍 makestatic-...

    3 年前
  • npm 包 response-picker 使用教程

    在前端开发中,经常需要从一个 API 返回的数据中获取指定的属性值。这时,我们可以使用 npm 包 response-picker。 在本篇文章中,我们将深入学习 response-picker 的使...

    3 年前
  • npm 包 @logicalroute/logger 使用教程

    介绍 @logicalroute/logger 是一个方便的前端日志记录工具库,它提供了强大的功能,包括: 快捷记录日志信息 强制记录错误等级 支持多种格式(如 JSON 等) 自定义日志格式 链式...

    3 年前
  • npm 包 @write-for-christ/ms2unicode 使用教程

    什么是 @write-for-christ/ms2unicode @write-for-christ/ms2unicode 是一个用于将中文数字转换为 unicode 码的 npm 包。

    3 年前
  • npm 包 @logicalroute/apihealth 使用教程

    在前端开发中,我们常常需要与后端 API 交互,而有时 API 可能会出现一些问题,我们需要及时地识别和处理这些问题,以保证系统的正常运行。@logicalroute/apihealth 是一个用于检...

    3 年前
  • npm 包 denim-express-factory 使用教程

    简介 denim-express-factory 是一个npm包,它是为Express.js框架编写的一个工厂,它可以自动创建 router 和 controllers 以及其他常见的前端类组件,为开...

    3 年前
  • npm 包 github-corners 使用教程

    前言 随着互联网的发展和技术的进步,开源的工具和库层出不穷,其中,一个能够为网页增添点睛之笔的小工具是 Github Corners。它可以为你的网站添加一个漂亮的小图标,同时也可以为你的 Githu...

    3 年前

相关推荐

    暂无文章