加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 移动互联 > 正文

重构复杂的React组件:编写高效且可读组件的5个优秀实践

发布时间:2019-10-30 16:03:33 所属栏目:移动互联 来源:王强
导读:问题 React.js 已成为 Web 组件中很受欢迎的视图库。一路进化下来,它发展出了众多特性,如今已成为创建优秀的 Web 应用程序的一套完整工具。 它的社区经历了爆发式增长,尤其在过去的 2-3 年中,网络上出现了成千上万有关这项技术的教程。 因此,每位初学

因此我们可以进一步重构这个组件,创建另一个小的函数组件来渲染按钮,并传递一些属性,如 action、setClicked 和 title:

  1. import React, { useState } from 'react'; 
  2. import './ListComponent.css'; 
  3. const ListItemComponent = props => { 
  4.  return { 
  5.  <li> 
  6.  <button 
  7.  onClick={() => { 
  8.  props.setClicked(props.title); 
  9.  props.action(); 
  10.  }} 
  11.  className="my-button"> 
  12.  {props.title} 
  13.  </button> 
  14.  </li> 
  15.  ); 
  16. }; 
  17. const ListComponent = props => { 
  18.  const [lastClickedButton, setLastClickedButton] = useState(''); 
  19.  return 
  20.  <div> 
  21.  <hl>The last clicked button is {lastClickedButton}</hl> 
  22.  <ul> 
  23.  <ListItemcomponent 
  24.  title="Create" 
  25.  action={props.createSomething} 
  26.  setClicked={setLastClickedButton} 
  27.  /> 
  28.  <ListItemComponent 
  29.  title="Read" 
  30.  action={props.readSomething} 
  31.  setClicked={setLastClickedButton} 
  32.  /> 
  33.  <ListItemComponent 
  34.  title="Update" 
  35.  action={props.updateSomething} 
  36.  seteClicked={setLastClickedButton} 
  37.  /> 
  38.  <ListItemComponent 
  39.  title="Destroy" 
  40.  action={props.destroySomething} 
  41.  seteClicked={setLastClickedButton} 
  42.  /> 
  43.  </ul> 
  44.  </div> 
  45.  ); 
  46. }; 

好的,我们的组件开始变好看了,但是仍有改进的余地,让我们继续吧!

3. 正确命名和 props 解构

setLastClickedButton 是 setter 函数的描述性名称,但我们需要保持代码的可读性和简洁,因此请务必起一个最短、最精炼的名字,这是很重要的。我们将其重命名为 setClicked。

同样,只要有可能,从 props 对象解构出来你需要的东西就可以避免多次重复使用 props 这个词。在 ListItem 组件中,我们现在按解构后的函数参数中的名称—— {action, title, setClicked}来访问 props。

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读