”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 反应听起来很硬/复杂吗?

反应听起来很硬/复杂吗?

发布于2025-03-22
浏览:508

对您的反应似乎不堪重负?

如果是这样,您并不孤单。

我一直都在听到类似的事情:

  • 不要使用react;改用Vue。

    react是坚硬且无用的;代替使用HTMX或Vanilla JS。

  • ETC。

  • ,但是作为Palantir有5年经验的高级前端工程师,我可以自信地说:
  • 在这篇文章中,我将解释为什么反应不像人们所做的那样复杂,如果您挣扎了,如何应对挑战。

    准备好?让我们潜水。 ?下载我的免费101个React技巧和技巧书,以获取抢手。

    [2
  • React感到艰难的7个原因(以及如何解决)
[2

原因1:您不太了解JavaScript

人们有99%的时间与React斗争,因为他们的JavaScript基金会不是稳固的。

对我来说也是如此 - 我一开始无法理解React代码。我花了几个月的时间努力地写东西。当我学习JavaScript时,一切都改变了。

在学习反应之前,您需要知道的最低限度:

Is React as hard/complex as it sounds?原始和对象数据类型

[2

范围

Is React as hard/complex as it sounds? [2 [2

ETC。

?查看肯特·C·多德斯(Kent C.

一旦您的JavaScript技能提高,React会感觉更容易。

?查看我的帖子如何提高前端技能以获取有用的资源来学习JavaScript。

[2

    原因2:您使用的是错误的工具
  • 如果您是新手反应,请不要通过选择过时或过于复杂的工具来设置自己的失败:
  • 不要使用

    不要使用
  • 而是从vite开始。它快速,简单且对初学者友好。您稍后再感谢我。 [2

  • 创建全堆栈应用程序的框架。

    您不需要知道Next.js或Remix即可学习React。
  • 但是
  • 因此,首先关注React。框架可以稍后出现,因为它们添加了一层复杂性。 [2

  • 从头开始构建所有内容,尤其是考虑到可及性 - 可能会压倒性。 但是,您不必一个人面对它。
  • 将它们视为

    快捷速度
  • 。当别人已经建造了令人难以置信的牛时​​,为什么还要重新发明轮子呢?
以下是一些示例:

[2

shadcn/ui用于样式

ETC。

Is React as hard/complex as it sounds?通过利用这些工具来节省时间和精力。

[2

如果您按时间或资源(例如一个人的团队),remix或next.js之类的框架可以是救生员。

何时使用它们:

    你很开心
  • 您正在构建一个全栈应用程序您想要内置的路由,服务器端渲染以及更多 如果您不需要全堆栈解决方案,请坚持与React路由器和一些必需库进行反应。 [2 原因6:您不了解React的渲染过程(最终出现性能问题)

  • 理解React的渲染过程对于避免绩效问题至关重要:
  • rendering: react call call call consoment functions(或类Component Render方法)生成虚拟DOM。 普通错误人物的造成:

太多的渲染器:

通过最小化状态,将状态保持在组件树中,然后在需要的地方使用回忆(不要 @ me?:memoization?ememoization可以改变生活)。 ?请查看有关React重新订阅者的指南。

Is React as hard/complex as it sounds? useffect

可以避免许多效果。看,您可能不需要效果。

不遵循约定:例如,当渲染列表列表时,请始终使用唯一的键来防止错误。

[2

如果您的应用程序在开发中起作用,但在生产中破裂,则该添加测试和类型检查器了。 我知道,我知道 - 测试和打字稿听起来像过度杀伤。但是听我说。

是您的安全网,在触及您的用户之前捕获错误。

您的未来自我会感谢您!

这是我推荐的: type Checker:使用typescript。它对初学者友好,尤其是本指南。如果您使用的是VITE,则设置很简单。

[2

测试和类型可以节省您数小时的调试 - 并保持理智?。 [2 Is React as hard/complex as it sounds? 概括

的反应很难听起来吗? 不。

React只是一个JavaScript库。大多数复杂性来自:

[2 [2

尝试自己做所有事情

[2

记住,每个专家曾经是初学者。 有了正确的心态和工具,React可以是您构建惊人应​​用程序的秘密武器。

奖励

:下载我的
    免费电子书,
  • 101 react提示&tricks&tricks

    ,并在构建更流畅,更快的react Apps时节省了小时的挫败感。 [2

    “思考食物”
  • //检测黑暗主题 var iframe = document.getElementById('Tweet-1862406693444444444439-370'); if(document.body.classname.includes('dark-theme')){ iframe.src =“ https://platform.twitter.com/embed/tweet.html? }
  • [2

    发现问题
  • //检测黑暗主题 var iframe = document.getElementById('Tweet-1861017779249320435-683'); if(document.body.classname.includes('dark-theme')){ iframe.src =“ https://platform.twitter.com/embed/tweet.html?id=18610177779249320435&theme=dark” }

[2

发表评论?要与React分享您最大的挑战,或者是什么使您点击您。

Is React as hard/complex as it sounds?,不要忘记丢弃“ ???”。

If you're learning React, download my 101 React Tips & Tricks book for FREE.

如果您喜欢这样的文章,请加入我的

新闻通讯,

frontendjoy

    如果您想要每日提示,请在X/Twitter或Bluesky上找到我。
版本声明 本文转载于:https://dev.to/_ndeyefatoudiop/is-react-as-hardcomplex-as-it-sounds-nfg?1如有侵犯,请联系[email protected]删除
最新教程 更多>
  • 如何在没有预定义路线的情况下提取URL参数?
    如何在没有预定义路线的情况下提取URL参数?
    如何在GO 在此示例中, /路由器路径充当通配符,与任何URL路径匹配。当请求进来时,将调用处理程序功能,并从请求中提取URL路径。然后,您可以使用任何自定义功能的URL路径,例如提取特定值或将其重定向到另一页。 通过使用gorilla/mux,您可以轻松地处理无预定路由的URL路径,并从请求的...
    编程 发布于2025-03-23
  • 最小/最大与订单按限制:检索最小值或最大值的更好方法是更好的方法?
    最小/最大与订单按限制:检索最小值或最大值的更好方法是更好的方法?
    [2 在最小/最大值检索从数据库表中检索最小值或最大值的两种常见方法:使用min/max函数或使用限制的子句采用订单。本文比较了这些方法,检查了它们的效率,可维护性和可读性。 性能比较 最低/最大函数通常比效率优于和限制。 在未索引字段的情况下,min()执行单个表扫描,而按订单和限制则需要一个文...
    编程 发布于2025-03-23
  • 为什么未分配的本地变量会导致汇编错误?
    为什么未分配的本地变量会导致汇编错误?
    [2 [2 编程语言通常会标记“未分配的本地变量” - 使用前声明但在使用前没有给出一个值,作为编译错误。这通常发生在访问之前缺乏分配的函数或方法中的变量。 示例代码显示了,和 latefee 的示例代码。 编译器检测到这些变量已被声明,但在计算之前保持不专业。 解决方案是在信用计划的每个分支的...
    编程 发布于2025-03-23
  • 如何确定Python对象实例的类名?
    如何确定Python对象实例的类名?
    在Python 中时,在Python中使用对象的类名称是有用的,可以从python中使用对象时,可以从中实例化它们的类别。两种常见的方法涉及使用检查模块或访问属性。 However, a simpler and more accessible method is utilizing the nam...
    编程 发布于2025-03-23
  • 为什么我在Silverlight Linq查询中获得“无法找到查询模式的实现”错误?
    为什么我在Silverlight Linq查询中获得“无法找到查询模式的实现”错误?
    查询模式实现缺失:解决“无法找到”错误在Silverlight应用程序中,尝试使用LINQ建立LINQ连接以错误而实现的数据库”,无法找到查询模式的实现。”当省略LINQ名称空间或查询类型缺少IEnumerable 实现时,通常会发生此错误。 解决问题来验证该类型的质量是至关重要的。在此特定实例中...
    编程 发布于2025-03-23
  • c#中的字符串输出:string.format或confenation(+) - 哪个更好?
    c#中的字符串输出:string.format或confenation(+) - 哪个更好?
    C# 字符串输出:String.Format 还是字符串连接? 在编程领域,字符串输出和连接一直是争论的焦点。在 C# 中显示或组合字符串时,程序员通常需要在使用 String.Format 进行字符串格式化和使用 运算符进行直接连接之间做出选择。 使用 String.Format 进行字符串...
    编程 发布于2025-03-23
  • LINQ如何有效地找到指定基本类型的所有派生类型?
    LINQ如何有效地找到指定基本类型的所有派生类型?
    在编程中查找指定类型的派生类型使用LINQ(语言集成查询)存在一个更有效,更优雅的解决方案。以下代码段提供了完成此任务的简单且性能的方法: var listofderivedTypes =(( 从appdomain.currentdomain.getAssembli...
    编程 发布于2025-03-23
  • 版本5.6.5之前,使用current_timestamp与时间戳列的current_timestamp与时间戳列有什么限制?
    版本5.6.5之前,使用current_timestamp与时间戳列的current_timestamp与时间戳列有什么限制?
    在时间戳列上使用current_timestamp或MySQL版本中的current_timestamp或在5.6.5 此限制源于遗留实现的关注,这些限制需要对当前的_timestamp功能进行特定的实现。 创建表`foo`( `Productid` int(10)unsigned not n...
    编程 发布于2025-03-23
  • Python读取CSV文件UnicodeDecodeError终极解决方法
    Python读取CSV文件UnicodeDecodeError终极解决方法
    在试图使用已内置的CSV模块读取Python中时,CSV文件中的Unicode Decode Decode Decode Decode decode Error读取,您可能会遇到错误的错误:无法解码字节 在位置2-3中:截断\ uxxxxxxxx逃脱当CSV文件包含特殊字符或Unicode的路径逃...
    编程 发布于2025-03-23
  • 部署(静态)Vite React应用程序:完整指南
    部署(静态)Vite React应用程序:完整指南
    为什么要部署静态Vite React App? 部署静态Vite React应用程序提供了速度,效率和简单性的好处。静态站点是预渲染的,因此它们可以快速将内容传递给用户的浏览器,而无需复杂的服务器端进程的开销。 Vite构建工具以其快速构建和闪电般的HMR(热模块更换)而闻名,非...
    编程 发布于2025-03-23
  • 为什么GO的“ HTTP.GET”请求会在各大洲的“同行重置”错误中失败?
    为什么GO的“ HTTP.GET”请求会在各大洲的“同行重置”错误中失败?
    答案: “连接重置peer”错误表示由于资源限制或过度连接启动,远程服务器已故意或非自愿终止连接。要解决此问题: 1。优化并发级别:,而不是启动众多并行连接(1000-2000),而是使用不同的并发级别来确定最有效的数字。过高的并发性可能导致连接重置。 2。设置Transport.maxidlec...
    编程 发布于2025-03-23
  • Android如何向PHP服务器发送POST数据?
    Android如何向PHP服务器发送POST数据?
    在android apache httpclient(已弃用) httpclient httpclient = new defaulthttpclient(); httppost httppost = new httppost(“ http://www.yoursite.com/script.p...
    编程 发布于2025-03-23
  • 如何在mySQL中检索最后一个插入的行?
    如何在mySQL中检索最后一个插入的行?
    Retrieving the Last Row in MySQLWhen working with MySQL tables, it can be necessary to access the last row inserted.这是根据最新数据检索列值或执行其他操作所需的。如果表包含一个自动插入...
    编程 发布于2025-03-23
  • 在Java中使用for-to-loop和迭代器进行收集遍历之间是否存在性能差异?
    在Java中使用for-to-loop和迭代器进行收集遍历之间是否存在性能差异?
    对于每个循环vs. iterator:collection traversal for-east loop 在Java 5中介绍的,for-east loop(也称为loop的增强型)是一个简洁的和易于阅读的概述,并且易于读取概述的概述。它在内部使用迭代器: list a = new arr...
    编程 发布于2025-03-23
  • 如何处理Golang Net/HTTP服务器中的文件上传?
    如何处理Golang Net/HTTP服务器中的文件上传?
    如何使用Golang Net/http Server 在尝试使用mux和net/http中的golang中实现简单的文件上传端点时,从请求中检索文件数据可能会构成挑战。以下解决方案解决了以下问题: import( “字节” “ FMT” “ io” “ net/ht...
    编程 发布于2025-03-23

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3