Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 确保我们不必重写React代码_Javascript_Reactjs - Fatal编程技术网

Javascript 确保我们不必重写React代码

Javascript 确保我们不必重写React代码,javascript,reactjs,Javascript,Reactjs,我在学习React和JS时,看到一些视频说,在他们创建产品后,他们面临着必须重写代码的情况,因为很难添加新功能并轻松进行更改。然后我试图找到一些文章来解释如何提前编写可维护代码,这样我们就不必在以后重写它。但基本上大多数文章都说,解构或propTypes是一条可行之路。但是我想知道,在开始为我们的产品编写代码之前,我们是否必须记住一些主要的重要建议,这样我们以后就不必重写了。在工作中,我们只需要重写代码,因为我们的客户经常改变主意。根据您的上下文,您可能别无选择,只能重写部分代码,但如果是关于个

我在学习React和JS时,看到一些视频说,在他们创建产品后,他们面临着必须重写代码的情况,因为很难添加新功能并轻松进行更改。然后我试图找到一些文章来解释如何提前编写可维护代码,这样我们就不必在以后重写它。但基本上大多数文章都说,解构或propTypes是一条可行之路。但是我想知道,在开始为我们的产品编写代码之前,我们是否必须记住一些主要的重要建议,这样我们以后就不必重写了。

在工作中,我们只需要重写代码,因为我们的客户经常改变主意。根据您的上下文,您可能别无选择,只能重写部分代码,但如果是关于个人项目,那么只需考虑您想要实现的功能,以及您将来可能想要实现的功能,并尝试创建尽可能多的通用代码。可重用性是我不常看到的东西,这让我很难过

您可能想做一个功能(然后是技术)概念,并将其划分为用户情景(场景),以便更好地了解您需要什么以及可以合并哪些功能。尽可能避免使用大屁股组件


所有这些工作都是为了帮助您为应用程序建立坚实的基础,因此,如果您必须改进功能,那么您将重点关注这一点,并避免副作用。

一些具有可伸缩代码的提示:

  • 使用“控制反转”模式 这意味着您必须在没有任何状态或逻辑的情况下开发不可知组件。所有逻辑应由控制器(主母控制器)处理。例如,按钮的外观如下所示:
  • 界面按钮操作{
    变体?:“主要”|“次要”;
    onClick?:()=>void;
    禁用?:假;
    图标?:图标;
    文本:字符串;
    }
    导出默认功能按钮({variant=“primary”,onClick,disabled=false,icon,text}:ButtonProps){
    返回(
    {图标&&
    {text}
    )
    
    }
    hey:)谢谢您的评论抱歉,我有一些问题。首先,您建议使用“控制反转,我应该检查React是否还有其他有用的模式?其次,在可重用性方面,我看到一些开发人员没有在useEffect中创建ajax请求,他们只是使用自定义挂钩来实现发送ajax请求的可重用性。这可行吗?第三,正如您所知,在React中使用redux,我们使用connect()对于某些组件。但是connect()会使组件不可重用,因此开发人员不会在任何组件中使用connect,只是尝试实现可重用性。您听说或看到关于最后一点的任何内容吗?控制反转、关注点分离、不可知性、干代码和kiss(保持简单和愚蠢)是您应该遵循的模式。我建议您在单独的文件中处理所有api调用,然后在需要的地方导入这些函数。您不需要redux(或者使用redux挂钩useSelector和useDispatch,而不是connect).React Context起作用。只需在此上下文中保留一些最重要的信息,不要一直更新。如果你的应用程序架构设计良好,道具就可以了。大型redux商店很愚蠢。Jotai似乎也很适合处理全局状态。对于测试,请先开玩笑地编写测试(功能应该涵盖哪些用例?)。否则,您可以尝试使测试适合您的函数,而不是使您的函数适合测试。这称为TTD:测试驱动开发。另外,在Storybook中开发组件。您的意思是“我建议您在单独的文件中处理所有api调用”最后,关于create-react-app,我看到过开发人员不使用CRA从头开始创建自己的模板的情况,原因是对webpack.config文件和包进行更改变得更容易,json将只包含我们需要的包。您支持吗?或者最好还是使用CRA和npm run eject吗?非常简单:)