VPS参考、测评、推荐
分享你关注的VPS主机优惠信息

React中高阶组件的友好引入

React中高阶组件的友好引入

高阶组件(hoc)是中一项有趣的技术,用于重建共享几乎相同逻辑的相似组件。我知道这听起来很抽象很。然而,它是一种不特定于的架构模式,因此您可以使用这种方法做很多事情。

例如,您可以使用它在不调整原始组件的情况下向组件添加负载指示器,或者您可以隐藏组件的属性以使其不那么冗长。有许多应用程序,我试图在本教程中介绍其中的大部分。

还有其他几个教程可以教你关于HOC的知识,但大多数教程都是针对高级React开发人员的。当我开始学习React时,我很难理解组件的概念以及如何将ad HOC合并到我的项目中以编写更好的代码。本文将解释从开始到孵过程中您需要了解的关于HOC的一切。

摘要

本教程分为三个部分。第一部分将介绍高级组件的概念。在这里,我们将讨论在查看高阶函数和HOC之前需要理解的语法。第二部分是本系列中最激动人心的部分,您将看到一个实际的HOC示例。我们将使用HOC来创建表单、和许多其他东西。

在本教程的第三部分中,我们将更加关注实现高级组件时的最佳实践和注意事项。我们还将简要介绍React中代码共享的替代模式,例如渲染道具。

在开始之前,最好先看看有状态和无状态组件的教程,以便更好地理解React的组件架构。

ES6语法备忘单我们很快就会开始。但在此之前,我想你应该知道一些事情。我更喜欢尽可能多地使用ES6语法,这与HOC配合得很好。作为初学者,HOC是有意义的,但有些ES6语法没有意义。因此,我建议您先浏览此部分,稍后您可以回来参考。

箭头函数箭头函数是一个正则函数表达式,但其语法较短。它们最适合于非方法函数,这也是我们特别感兴趣的。以下是一些帮助您入门的示例:

不带参数的函数/*不带参数的函数*/function(){ return“这是一个函数表达式& quot;}//相当于()= & { return &quot这是一个箭头函数表达式}//或()= & ”语法较短的箭头& quot单参数函数/*单参数函数*/function(param){ return { title:“此函数接受参数并返回对象& quot,params: param}}//是语法-等效于param = & gt{ return { title:此箭头函数接受单个参数& quot,params: param }}带多个参数的函数*/Function(param 1,param 2){ return { title:“此函数接受多个参数& quot,params: add(…args)//6数组中的扩展语法/*数组中的扩展语法*/constwandthree =

既然理论讲完了,我们来看看代码。下面是一个非常简单的例子,它将输入组件包装在

/*函数名的“with”前缀是一种命名约定。您可以将函数命名为任何名称,只要它有意义*/const with grey BG = wrapped component = & gt;class NewComponent扩展组件{ const BG style = { background color:‘grey‘,};render(){ return(& lt;div className = & quot包装& quotstyle={bgStyle}&gt。& lt包装组件{…this . props }/& gt;& lt/div & gt;);}};const small cardwithgreybg = withGreyBg(small card);const BigCardWithGreyBg = withGreyBg(BigCard);const huge card with grey BG = with grey BG(huge card);类CardsDemo扩展组件{ render(){ & lt;SmallCardWithGreyBg {…this . props }/& gt;& ltBigCardWithGreyBg {…this . props }/& gt;& ltHugeCardWithGreyBg {…this . props/& gt;}}withGreyBg函数将一个组件作为输入并返回一个新组件。我们不是直接组合卡片组件并将样式附加到每个单独的组件上,而是创建一个特设来实现这一目标。高级组件包装原始组件并添加

虽然这在目前看来不是特别有用,但好处不小。考虑这种情况。您正在使用React路由器,并且需要保护一些-如果未经身份验证,则这些的所有请求都应该被重定向到/login。我们可以使用HOC来有效地管理受保护的路由,而不是重复的身份验证代码。好奇。想知道怎么做吗?我们将在下一个教程中介绍这一点和更多内容。

注意:ECMAScript中提出了一个名为decorator的函数,这使得使用HOC变得很容易。然而,它仍然是一个实验性的函数,所以我决定在本教程中不使用它。如果您正在使用create-react-app,则需要在使用装饰器之前弹出它。如果你运行的是最新的Babel(Babel 7),你需要做的就是

//用Babel处理JS。{测试:/。(js | jsx | mjs)$/,include: paths.appSrc,loader:require . resolve(‘babel-loader‘),options: { //这是webpack的‘Babel-loader‘的一个(不是Babel本身)。//它启用结果。/node _ modules/。用于快速重建的/babel-loader//目录。缓存方向:true,预设:【‘stage-0‘】},抽象。

在本教程中,我们学习了HOC的基本概念。Ad HOC是一种构建可重用组件的流行技术。让我们首先讨论基本的ES6语法,以便您可以更容易地习惯箭头函数并编写现代JavaScript代码。

然后我们学习了高阶函数及其工作原理。最后,我们了高层组件,并从头开始创建了这个特设。

接下来,我们将通过实际示例介绍不同的ad HOC技术。在此之前,请保持关注。请在评论区分享你的想法。

:React中高阶组件的友好引入 https://vps.caogenba../109181.html

赞(0) 打赏
未经允许不得转载:草根吧VPS_最新VPS信息参考 » React中高阶组件的友好引入
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址