તમને NextJS ની જરૂર નથી
React એપ્સ બનાવવા માટે Next.js એ ડિફોલ્ટ જવાબ છે. તે એક ઉત્તમ ફ્રેમવર્ક છે. પરંતુ ડિફોલ્ટ હોવાનો અર્થ એ નથી કે તે અનિવાર્ય છે.
ખોટા પ્રોજેક્ટ માટે તેનો ઉપયોગ કરવાથી અમારી ઝડપ ઘટી અને ટીમમાં વિખવાદ થયો. અમે ડેશબોર્ડ્સ અને ચાર્ટ્સ સાથેનું ડેટા-હેવી પ્રોડક્ટ બનાવ્યું હતું. લગભગ દરેક સ્ક્રીન લોગિનની પાછળ હતી.
આ પ્રકારની એપ માટે, server-side rendering (SSR) એ મૂલ્ય ઉમેર્યા વગર ખર્ચ વધાર્યો.
સાચું સાધન તમે શું બનાવો છો તેના પર આધાર રાખે છે.
Content-first પ્રોજેક્ટ્સ: • માર્કેટિંગ સાઇટ્સ • બ્લોગ્સ • સ્ટોરફ્રન્ટ્સ • ડોક્સ (Docs) • અહીં Next.js નો ઉપયોગ કરો. SEO મહત્વનું છે અને કન્ટેન્ટ સ્ટેટિક હોય છે.
Application-first પ્રોજેક્ટ્સ: • ઇન્ટરનલ ટૂલ્સ • ડેશબોર્ડ્સ • એડમિન પેનલ્સ • SaaS કન્સોલ • અહીં Vite-આધારિત SPA નો ઉપયોગ કરો. આ એપ્સ ઓથેન્ટિકેશન (auth) ની પાછળ હોય છે અને APIs પર આધાર રાખે છે.
અમે Next.js થી Vite SPA પર શિફ્ટ થયા. તેના કારણો અહીં છે:
સરળ Debugging સર્વર એરર્સ તમારા કમ્પોનન્ટ્સ સાથે સ્પષ્ટ રીતે મેપ થતા નથી. ક્લાયન્ટ-સાઇડ એરર્સ બ્રાઉઝરમાં સ્પષ્ટ stack traces સાથે થાય છે. આનાથી બગ્સને ઝડપથી સુધારી શકાય છે.
બહેતર ટેસ્ટિંગ તમે એવા સર્વર કમ્પોનન્ટનું યુનિટ ટેસ્ટિંગ સરળતાથી કરી શકતા નથી જે અન્ય સર્વર કમ્પોનન્ટ્સને રેન્ડર કરે છે. અમે ફક્ત ટેસ્ટિંગ કરી શકાય તે માટે અમુક ડિઝાઇન પસંદગીઓ કરી હતી. તે એક ભૂલ હતી.
સરળ Auth SSR માં દરેક રિક્વેસ્ટ પર સર્વર દ્વારા ટોકન્સ વેલિડેટ કરવા જરૂરી છે. આનાથી વધુ એટેક સર્ફેસ અને જટિલ કૂકી લોજિક ઊભું થાય છે. ક્લાયન્ટ-ફર્સ્ટ એપ Auth ને એક જ જગ્યાએ હેન્ડલ કરે છે: API.
ઓછો ઇન્ફ્રાસ્ટ્રક્ચર ખર્ચ SSR ને દરેક રિક્વેસ્ટ માટે હંમેશા ચાલુ રહેતા સર્વરની જરૂર હોય છે. સ્ટેટિક ફ્રન્ટએન્ડ CDN પરથી ફાઇલો તરીકે મોકલવામાં આવે છે. તમારે ચલાવવા અને સુરક્ષિત કરવા માટે એક ઓછી સર્વિસની જરૂર પડે છે.
ઓછી જટિલતા Next.js સર્વર અને ક્લાયન્ટ વચ્ચે વિભાજન કરવા માટે મજબૂર કરે છે. ફ્રન્ટએન્ડ એન્જિનિયર્સે મિડલવેર અને કેશિંગ જેવી સર્વર સંબંધિત બાબતોનું સંચાલન કરવું પડતું હતું. આનાથી અમારી ગતિ ધીમી પડી.
અમે તબક્કાવાર માઇગ્રેશન કર્યું. અમે પબ્લિક SEO-ક્રિટિકલ પેજ માટે Next.js રાખ્યું. બાકી બધું અમે Vite SPA માં ખસેડ્યું.
તફાવત (trade-offs) ખૂબ જ ઓછા હતા: • SEO: લોગિનની પાછળ રહેલા ડેશબોર્ડ્સને SEO ની જરૂર નથી. • ઇનિશિયલ લોડ: ડેટા-હેવી એપ્સ સામાન્ય રીતે ડેટાબેઝને કારણે ધીમી હોય છે, ફ્રેમવર્કને કારણે નહીં.
જો SEO અને સોશિયલ પ્રિવ્યુ મહત્વના હોય તો Next.js નો ઉપયોગ કરો. જો તમારી એપ ઇન્ટરેક્ટિવ, ડેટા-ડ્રિવન હોય અને લોગિનની પાછળ હોય તો Vite SPA નો ઉપયોગ કરો.
ડિફોલ્ટનો ઉપયોગ કરવાનું બંધ કરો. તમારી જાતને પૂછો કે તમે ખરેખર શું બનાવી રહ્યા છો.
Source: https://dev.to/moruno21/you-dont-need-nextjs-heres-why-708
