随着现代Web应用程序的重心从后端转移到前端,我们不得不花更多的时间思考性能优化。实现条件渲染时也是如此。因此,请尝试花费适当的时间来优化您的代码,同时尽可能地推动组件的重用。这将帮助您在质量和交货时间之间取得适当的平衡。1.if-else我们可以将if-else条件逻辑应用于React中的JSX。请记住,JSX在执行之前被编译为JS,因此我们实际上是在编写JS代码。/示例/varglobalVar=truefunctionApp(){if(globalVar){return
IfRendering
}else{returnElseRendering
}}/性能/if-else语句会导致渲染浪费。这在中小型应用程序中可能不明显,但在具有数百或数千个组件的大型应用程序中,性能拖累可能会非常明显。让我们研究下面的例子:render(){if(props.showA){return(IfRendering
:ElseRendering
})}3.元素变量元素变量包含JSX元素,所以可以在React组件中的任何地方使用。元素变量使您的代码更易于阅读和理解,因为它消除了组件中的多个返回语句。实现这个的标准方法:functionApp(props){if(props.loggedIn){returnLoggedIn
}else{returnNotLoggedIn
}}在上面的组件中我们有多个返回声明。我们在JSX中使用if-else来有条件地渲染部分UI。我们可以使用Element变量来存储要在条件语句的每个结果上返回的元素。/例子/functionApp(props){letelementif(props.loggedIn){element=LoggedIn
}else{element=NotLoggedIn
}returnelement}根据if-else的评估声明中,我们使用元素变量来保存要渲染的最后一个元素。通过使用元素变量,我们使代码更加简洁和可读。/performance/这里的问题和上面if-else项说的一样。4.AND运算符(&&)AND运算符用于检查其左右表达式是否正确。left_expr&&right_expr如果表达式解析为真,AND运算符将返回正确表达式的求值。示例:(true&&"nnamdi")//"nnamdi"(true&&1234)//1234另一方面,如果表达式解析为false,AND运算符将返回false:(false&&"nnamdi")//false(false&&1234)//false如果是这种情况,我们可以使用这个AND运算符在React中有条件地渲染JSX。/Example/functionApp(props){return({props.loggedIn&&
)}我们在JSX中使用AND运算符。大括号使我们能够在JSX中添加和计算JS表达式。/性能/虽然和前面两种条件渲染方式本质上是一样的,但是带有AND(&&)运算符的JSX表达式被认为是更好的选择,因为它在强制返回相同结构的同时返回和渲染条件元素。5.返回null我们可以将组件设置为返回一个null值而不是JSX表达式,这样它将被计算但什么也不会被渲染。当组件返回null时,它会阻止React安装该组件。functionApp(props){if(props.noRender)returnnullreturn(You'reloggedinas{props.data.username}
}AppComponent
)}如果设置了noRender属性,则此组件返回null。因此,如果我们不希望App组件呈现,则将设置noRender属性。请注意,组件的返回null的生命周期方法无论如何都会被触发。/performance/如上所述,虽然一个返回null的组件不会渲染任何东西,但它仍然会被评估。这意味着在大型应用程序中,不必要的计算加起来会非常可观。