React से कुछ चिढ़

React का एक साधारण client-side UI library से hooks, server components, और Next.js जैसे frameworks से भरे ecosystem में बदलना कई developers के लिए बढ़ती complexity और अस्पष्ट mental models के कारण निराशा पैदा कर रहा है। टिप्पणीकार `useEffect` के अत्यधिक इस्तेमाल, Create React App के deprecated होने, और Node-based, server-heavy setups की ओर धकेले जाने जैसी समस्याओं को रेखांकित करते हैं; उनका कहना है कि इससे modern web apps धीमे, समझने में कठिन, और बनाने में कम आनंददायक हो जाते हैं। कुछ लोग अभी भी React के ecosystem और flexibility की सराहना करते हैं, लेकिन कई लोग सरल और अधिक deterministic front ends के लिए Svelte, Solid, Vue, Preact, या यहाँ तक कि plain web standards की ओर बढ़ रहे हैं.

क्लाइंट-साइड React बनाम Server Components / Next.js

  • कई लोगों को लगता है कि React “दो हिस्सों में बँट” गया है: क्लासिक क्लाइंट-साइड React बनाम नया server-components/Next.js वाला संसार।
  • कई लोग यह मिस करते हैं कि बिना Node या किसी पूरे framework के, CDN के ज़रिए एक साधारण React app ship कर सकें।
  • कुछ लोगों को Server Components और SSR overreach या scope creep लगते हैं; दूसरों के लिए यही आधिकारिक भविष्य है, खासकर Next.js के ज़रिए।
  • कुछ लोगों को शक है कि server components मुख्यतः hosting vendors के हितों की सेवा करते हैं (ज़्यादा server compute, vendor lock-in) बजाय इसके कि app level पर साफ़ लाभ दें।

Hooks और useEffect पर बहस

  • Hooks बहुत polarizing हैं: कुछ इन्हें component frameworks के सबसे अच्छे विचारों में से एक कहते हैं; दूसरों को ये FP या OOP जैसे नहीं, बल्कि एक उलझा हुआ नया paradigm लगता है।
  • useEffect के ज़रिए complexity, race conditions, और ज़रूरत से ज़्यादा इस्तेमाल होने पर या data fetching और state orchestration के लिए उपयोग करने पर “spaghetti” पैदा होने की बार-बार शिकायतें आती हैं।
  • दूसरे लोग तर्क देते हैं कि useEffect दुर्लभ होना चाहिए, मुख्यतः external systems/DOM APIs के लिए, जबकि data libraries (React Query, SWR, आदि) के ज़रिए संभाला जाना चाहिए।
  • इस बात पर भी असहमति है कि React खुद क्या सिखाता है: docs में useEffect को fetching के लिए दिखाया भी जाता है और उससे दूर रहने की चेतावनी भी दी जाती है।

जटिलता, DX, और विकल्प

  • कई टिप्पणीकार कहते हैं कि modern React apps, पुराने stacks (Backbone, simple jQuery, PHP, early Facebook) की तुलना में, समझने में ज़्यादा कठिन हैं।
  • दूसरे जवाब देते हैं कि जटिल UIs हमेशा जटिल ही होंगे, और React अब भी एक अच्छा middle ground है।
  • जिन विकल्पों की सराहना की गई: Solid, Svelte, Vue, HTMX, Preact, Lit, vanilla Web Components, कभी-कभी Vite के साथ; कई लोग कहते हैं कि ये “old React” या सरल mental models के क़रीब लगते हैं।

State Management और Architecture

  • आलोचना कि React business logic, data fetching, और view को बड़े-बड़े components में एक साथ रखने के लिए प्रेरित करता है।
  • कुछ लोग Redux/MobX या बाहरी “services” के ज़रिए सख़्त separation का समर्थन करते हैं, components को शुद्ध state → UI के रूप में इस्तेमाल करते हुए।
  • दूसरे बताते हैं कि Redux/MobX का भी बुरी तरह दुरुपयोग हो सकता है; बड़े teams और समय की कमी चाहे framework कोई भी हो, architecture decay को बढ़ावा देती है।

Tooling Changes और Communication

  • Create React App को व्यापक रूप से प्रभावी रूप से deprecated माना जाता है, लेकिन आधिकारिक कहानी में कोई स्पष्ट replacement नहीं है।
  • Next.js को de facto blessed path माना जाता है, जो उन लोगों को चिढ़ाता है जो Node-based apps नहीं बना रहे।
  • Vite + हल्की libraries (Preact, आदि) को अक्सर एक व्यावहारिक, आधुनिक “unofficial CRA” के रूप में उद्धृत किया जाता है।
  • कई लोग React की messaging को असंगत या अस्पष्ट बताते हैं, जिससे confusion और frustration बढ़ती है।