」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 反應聽起來很硬/複雜嗎?

反應聽起來很硬/複雜嗎?

發佈於2025-03-22
瀏覽:882

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

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

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

  • 不要使用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 ...
    程式設計 發佈於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.maxidle...
    程式設計 發佈於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” ...
    程式設計 發佈於2025-03-23

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3