ரூட்-அடிப்படையிலான பண்டில் பிரித்தலைப் பயன்படுத்தி ரியாக்ட் கோட் ஸ்ப்ளிட்டிங் செய்வதற்கான வழிகாட்டி. பயன்பாட்டின் செயல்திறன் மற்றும் பயனர் அனுபவத்தை மேம்படுத்தும் நுட்பங்களைக் கற்றுக்கொள்ளுங்கள்.
ரியாக்ட் கோட் ஸ்ப்ளிட்டிங்: உகந்த செயல்திறனுக்கான ரூட்-அடிப்படையிலான பண்டில் பிரித்தல்
இன்றைய இணைய மேம்பாட்டுச் சூழலில், வேகமான மற்றும் பதிலளிக்கக்கூடிய பயனர் அனுபவத்தை வழங்குவது மிக முக்கியம். பயனர்கள் உடனடி முடிவுகளை எதிர்பார்க்கிறார்கள், மேலும் மெதுவாக ஏற்றப்படும் பயன்பாடுகள் விரக்திக்கும் நிராகரிப்புக்கும் வழிவகுக்கும். உங்கள் ரியாக்ட் பயன்பாடுகளின் செயல்திறனை மேம்படுத்துவதற்கான ஒரு சக்திவாய்ந்த நுட்பம் கோட் ஸ்ப்ளிட்டிங் ஆகும். இந்தக் கட்டுரை ரூட்-அடிப்படையிலான கோட் ஸ்ப்ளிட்டிங் பற்றிய விவரங்களை ஆராய்கிறது. இது உங்கள் பயன்பாட்டை சிறிய, நிர்வகிக்கக்கூடிய பண்டில்களாகப் பிரித்து, தற்போதைய ரூட்டிற்குத் தேவையான கோடை மட்டும் ஏற்றுகிறது.
கோட் ஸ்ப்ளிட்டிங்-ஐப் புரிந்துகொள்ளுதல்
கோட் ஸ்ப்ளிட்டிங் என்பது உங்கள் பயன்பாட்டின் கோடை பல பண்டில்களாகப் பிரிக்கும் ஒரு நடைமுறையாகும். இவற்றைத் தேவைக்கேற்ப அல்லது இணையாக ஏற்றலாம். உங்கள் கோடைப் பிரிப்பதன் மூலம், உங்கள் பயன்பாட்டின் ஆரம்ப ஏற்றுதல் நேரத்தை கணிசமாகக் குறைக்க முடியும். ஏனெனில், ஆரம்பக் காட்சியைக் காண்பிக்கத் தேவையான கோடை மட்டுமே பிரவுசர் பதிவிறக்கம் செய்ய வேண்டும்.
ஒரு பெரிய ஜாவாஸ்கிரிப்ட் கோப்பை வழங்குவதற்குப் பதிலாக, கோட் ஸ்ப்ளிட்டிங் அதைச் சிறிய பகுதிகளாக உடைக்க உங்களை அனுமதிக்கிறது. இது பெரும்பாலும் உங்கள் பயன்பாட்டில் உள்ள குறிப்பிட்ட அம்சங்கள் அல்லது ரூட்களுடன் இணைக்கப்பட்டுள்ளது. இந்த அணுகுமுறை பல முக்கிய நன்மைகளை வழங்குகிறது:
- குறைக்கப்பட்ட ஆரம்ப ஏற்றுதல் நேரம்: பிரவுசர் ஒரு சிறிய ஆரம்ப பண்டிலைப் பதிவிறக்குகிறது, இது வேகமான முதல் ரெண்டரிங் மற்றும் மேம்பட்ட பயனர் உணர்வுக்கு வழிவகுக்கிறது.
- மேம்பட்ட செயல்திறன்: சிறிய பண்டில்கள் என்றால் அலசுவதற்கும் செயல்படுத்துவதற்கும் குறைவான கோட், இது மேலும் பதிலளிக்கக்கூடிய பயன்பாட்டிற்கு வழிவகுக்கிறது.
- மேம்படுத்தப்பட்ட பயனர் அனுபவம்: முக்கியமான கோட் விரைவாக ஏற்றப்படுவதால், பயனர்கள் விரைவில் பயன்பாட்டுடன் தொடர்பு கொள்ளத் தொடங்கலாம்.
- திறமையான வளப் பயன்பாடு: ஒவ்வொரு ரூட்டிற்கும் தேவையான கோட் மட்டுமே ஏற்றப்படுகிறது, இது அலைவரிசை நுகர்வைக் குறைத்து வளப் பயன்பாட்டை மேம்படுத்துகிறது.
ரூட்-அடிப்படையிலான கோட் ஸ்ப்ளிட்டிங்: ஒரு உத்திப்பூர்வ அணுகுமுறை
ரூட்-அடிப்படையிலான கோட் ஸ்ப்ளிட்டிங் உங்கள் பயன்பாட்டை அதன் வெவ்வேறு ரூட்கள் அல்லது பக்கங்களின் அடிப்படையில் பிரிப்பதில் கவனம் செலுத்துகிறது. இது ஒற்றைப் பக்க பயன்பாடுகளுக்கு (SPAs) ஒரு சிறந்த உத்தியாகும். இங்கு முழு பயன்பாடும் ஆரம்பத்தில் ஏற்றப்பட்டாலும், அதன் ஒரு பகுதி மட்டுமே எந்த நேரத்திலும் தெரிகிறது.
ரூட்-அடிப்படையிலான கோட் ஸ்ப்ளிட்டிங் மூலம், ஒவ்வொரு ரூட் அல்லது தொடர்புடைய ரூட்களின் குழு ஒரு தனி பண்டிலாக மாறுகிறது. ஒரு பயனர் ஒரு குறிப்பிட்ட ரூட்டிற்குச் செல்லும்போது, அதனுடன் தொடர்புடைய பண்டில் தேவைக்கேற்ப ஏற்றப்படுகிறது. இது பயனர்கள் தற்போதைய காட்சிக்குத் தேவையான கோடை மட்டும் பதிவிறக்கம் செய்வதை உறுதிசெய்கிறது, ஆரம்ப ஏற்றுதல் நேரத்தைக் குறைத்து ஒட்டுமொத்த செயல்திறனை மேம்படுத்துகிறது.
செயல்படுத்தும் நுட்பங்கள்: டைனமிக் இம்போர்ட்ஸ் மற்றும் React.lazy
ரியாக்ட், ரூட்-அடிப்படையிலான கோட் ஸ்ப்ளிட்டிங்-ஐச் செயல்படுத்த சிறந்த கருவிகள் மற்றும் API-களை வழங்குகிறது, முக்கியமாக டைனமிக் இம்போர்ட்ஸ் மற்றும் React.lazy கூறு மூலம்.
டைனமிக் இம்போர்ட்ஸ்
டைனமிக் இம்போர்ட்ஸ் என்பது ஜாவாஸ்கிரிப்ட்டின் ஒரு அம்சமாகும், இது மாட்யூல்களை ஒத்திசைவற்ற முறையில் ஏற்ற அனுமதிக்கிறது. ஸ்டேட்டிக் இம்போர்ட்களைப் போலல்லாமல் (எ.கா., import Component from './Component'
), டைனமிக் இம்போர்ட்ஸ் import()
செயல்பாட்டைப் பயன்படுத்துகிறது, இது ஒரு ப்ராமிஸைத் திருப்பித் தருகிறது. மாட்யூல் ஏற்றப்படும்போது இந்த ப்ராமிஸ் மாட்யூலின் ஏற்றுமதிகளுடன் தீர்க்கப்படுகிறது.
இது தேவைக்கேற்ப காம்போனென்ட்களை ஏற்றுவதை செயல்படுத்துகிறது.
எடுத்துக்காட்டு:
const MyComponent = React.lazy(() => import('./MyComponent'));
இந்த எடுத்துக்காட்டில், MyComponent
தேவைப்படும்போது மட்டுமே ஏற்றப்படும், அதாவது அது ஒரு குறிப்பிட்ட ரூட்டிற்குள் ரெண்டர் செய்யப்படும்போது.
React.lazy
React.lazy
என்பது ரியாக்ட்டில் உள்ளமைக்கப்பட்ட ஒரு கூறு ஆகும், இது மற்ற காம்போனென்ட்களை சோம்பேறித்தனமாக ஏற்றுவதை எளிதாக்குகிறது. இது ஒரு ப்ராமிஸைத் திருப்பித் தரும் ஒரு செயல்பாட்டை எடுக்கிறது, இது ஒரு ரியாக்ட் காம்போனென்ட்டுக்குத் தீர்க்கப்படுகிறது. இது பொதுவாக டைனமிக் இம்போர்ட்ஸுடன் இணைந்து பயன்படுத்தப்படுகிறது.
React.lazy
-ஐப் பயன்படுத்த, நீங்கள் லேசியாக ஏற்றப்பட்ட காம்போனென்ட்டை ஒரு <Suspense>
காம்போனென்ட் மூலம் சுற்ற வேண்டும். <Suspense>
காம்போனென்ட், காம்போனென்ட் ஏற்றப்படும்போது ஒரு பின்னடைவு UI-ஐ (எ.கா., ஒரு லோடிங் ஸ்பின்னர்) காட்ட உங்களை அனுமதிக்கிறது.
எடுத்துக்காட்டு:
import React, { Suspense, lazy } from 'react';
import { BrowserRouter as Router, Route, Switch } from 'react-router-dom';
const Home = lazy(() => import('./routes/Home'));
const About = lazy(() => import('./routes/About'));
const Contact = lazy(() => import('./routes/Contact'));
function App() {
return (
Loading...
இந்த எடுத்துக்காட்டில், Home
, About
, மற்றும் Contact
காம்போனென்ட்கள் அவற்றின் தொடர்புடைய ரூட்கள் அணுகப்படும்போது சோம்பேறித்தனமாக ஏற்றப்படுகின்றன. <Suspense>
காம்போனென்ட், காம்போனென்ட்கள் ஏற்றப்படும்போது "Loading..." என்று காட்டுகிறது.
நடைமுறைச் செயலாக்கப் படிகள்
உங்கள் ரியாக்ட் பயன்பாட்டில் ரூட்-அடிப்படையிலான கோட் ஸ்ப்ளிட்டிங்-ஐச் செயல்படுத்த படிப்படியான வழிகாட்டி இதோ:
- ரூட்களை அடையாளம் காணுதல்: உங்கள் பயன்பாட்டில் தனித்தனி பண்டில்களாகப் பிரிக்கக்கூடிய ரூட்களைத் தீர்மானிக்கவும். சிறந்த செயல்திறனுக்காக தொடர்புடைய ரூட்களை ஒரு பண்டிலில் குழுவாக்குவதைக் கருத்தில் கொள்ளுங்கள்.
- ரூட் காம்போனென்ட்களை உருவாக்குதல்: ஒவ்வொரு ரூட் அல்லது ரூட்களின் குழுவிற்கும் ரியாக்ட் காம்போனென்ட்களை உருவாக்கவும். இந்தக் காம்போனென்ட்கள் டைனமிக் இம்போர்ட்ஸ் மற்றும்
React.lazy
ஐப் பயன்படுத்தி சோம்பேறித்தனமாக ஏற்றப்படும். - லேசி லோடிங்கைச் செயல்படுத்துதல்: ரூட் காம்போனென்ட்களை ஒத்திசைவற்ற முறையில் ஏற்றுவதற்கு
React.lazy
மற்றும் டைனமிக் இம்போர்ட்ஸ்-ஐப் பயன்படுத்தவும். ஒவ்வொரு லேசியாக ஏற்றப்பட்ட காம்போனென்ட்டையும் ஒரு<Suspense>
காம்போனென்ட் மூலம் சுற்றி, ஏற்றப்படும்போது ஒரு பின்னடைவு UI-ஐ வழங்கவும். - ரூட்டிங்கை உள்ளமைத்தல்: ரூட்களை வரையறுத்து அவற்றை லேசியாக ஏற்றப்பட்ட காம்போனென்ட்களுடன் இணைக்க
react-router-dom
போன்ற ஒரு ரூட்டிங் லைப்ரரியைப் பயன்படுத்தவும். - முழுமையாகச் சோதித்தல்: கோட் ஸ்ப்ளிட்டிங் சரியாகச் செயல்படுகிறதா மற்றும் லேசியாக ஏற்றப்பட்ட காம்போனென்ட்கள் எதிர்பார்த்தபடி ஏற்றப்படுகின்றனவா என்பதை உறுதிப்படுத்த உங்கள் பயன்பாட்டை முழுமையாகச் சோதிக்கவும்.
- பண்டில் அளவை மேம்படுத்துதல்: உங்கள் பண்டில்களின் அளவை பகுப்பாய்வு செய்து அவற்றின் அளவைக் குறைப்பதற்கான வாய்ப்புகளை அடையாளம் காணவும். உங்கள் பண்டில் உள்ளடக்கங்களைக் காட்சிப்படுத்தவும் பெரிய சார்புகளை அடையாளம் காணவும் Webpack Bundle Analyzer போன்ற கருவிகளைப் பயன்படுத்துவதைக் கருத்தில் கொள்ளுங்கள்.
மேம்பட்ட நுட்பங்கள் மற்றும் பரிசீலனைகள்
ரூட்-அடிப்படையிலான கோட் ஸ்ப்ளிட்டிங்கின் அடிப்படைச் செயலாக்கம் ஒப்பீட்டளவில் நேரடியானது என்றாலும், உங்கள் பயன்பாட்டின் செயல்திறன் மற்றும் பயனர் அனுபவத்தை மேலும் மேம்படுத்தக்கூடிய பல மேம்பட்ட நுட்பங்கள் மற்றும் பரிசீலனைகள் உள்ளன.
முன்பேற்றுதல் (Prefetching)
முன்பேற்றுதல் என்பது வளங்களை (எ.கா., பண்டில்கள்) அவை உண்மையில் தேவைப்படுவதற்கு முன்பே ஏற்றுவதாகும். இது உங்கள் பயன்பாட்டின் உணரப்பட்ட செயல்திறனை மேம்படுத்துவதற்குப் பயனுள்ளதாக இருக்கும், ஏனெனில் பயனர்கள் ஒரு புதிய ரூட்டிற்குச் செல்லும்போது எந்த ஏற்றுதல் தாமதத்தையும் கவனிக்காமல் இருக்கலாம்.
நீங்கள் பல்வேறு நுட்பங்களைப் பயன்படுத்தி முன்பேற்றுதலைச் செயல்படுத்தலாம், அவை:
<link rel="prefetch">
: இந்த HTML குறிச்சொல், குறிப்பிட்ட வளத்தைப் பின்னணியில் பதிவிறக்கம் செய்யுமாறு பிரவுசருக்குக் கூறுகிறது.react-router-dom
-இன்<Link>
காம்போனென்ட்: ஒரு குறிப்பிட்ட இணைப்போடு தொடர்புடைய வளங்களை முன்பேற்றுவதற்கு நீங்கள்prefetch
ப்ராப்பைப் பயன்படுத்தலாம்.- தனிப்பயன் முன்பேற்றுதல் தர்க்கம்: ஜாவாஸ்கிரிப்ட் மற்றும்
import()
செயல்பாட்டைப் பயன்படுத்தி உங்கள் சொந்த முன்பேற்றுதல் தர்க்கத்தை நீங்கள் செயல்படுத்தலாம்.
react-router-dom
-இன் <Link>
-ஐப் பயன்படுத்தும் எடுத்துக்காட்டு:
import { Link } from 'react-router-dom';
function Nav() {
return (
);
}
சர்வர்-சைடு ரெண்டரிங் (SSR) மற்றும் கோட் ஸ்ப்ளிட்டிங்
சர்வர்-சைடு ரெண்டரிங்கை (SSR) கோட் ஸ்ப்ளிட்டிங்குடன் இணைப்பது உங்கள் பயன்பாட்டின் செயல்திறனை மேலும் மேம்படுத்தும், குறிப்பாக ஆரம்ப ஏற்றுதல் நேரங்களுக்கு. SSR, ஆரம்ப HTML-ஐ சர்வரில் ரெண்டர் செய்ய உங்களை அனுமதிக்கிறது, அதை பின்னர் கிளையண்டிற்கு அனுப்பலாம். இது கிளையண்டில் பதிவிறக்கம் செய்யப்பட்டு செயல்படுத்தப்பட வேண்டிய ஜாவாஸ்கிரிப்ட்டின் அளவைக் குறைக்கிறது, இது வேகமான முதல் ரெண்டரிங்கிற்கு வழிவகுக்கிறது.
SSR-ஐ கோட் ஸ்ப்ளிட்டிங்குடன் பயன்படுத்தும்போது, சர்வர் டைனமிக் இம்போர்ட்ஸ் மற்றும் React.lazy
-ஐயும் கையாள முடியும் என்பதை உறுதிப்படுத்துவது முக்கியம். Next.js மற்றும் Gatsby போன்ற கட்டமைப்புகள் SSR மற்றும் கோட் ஸ்ப்ளிட்டிங்கிற்கு உள்ளமைக்கப்பட்ட ஆதரவை வழங்குகின்றன, இது இந்த நுட்பங்களைச் செயல்படுத்துவதை எளிதாக்குகிறது.
பிழை கையாளுதல்
லேசி லோடிங்கைப் பயன்படுத்தும்போது, ஏற்றுதல் செயல்பாட்டின் போது ஏற்படக்கூடிய சாத்தியமான பிழைகளைக் கையாள்வது முக்கியம். எடுத்துக்காட்டாக, நெட்வொர்க் இணைப்பு துண்டிக்கப்படலாம் அல்லது சர்வர் கிடைக்காமல் போகலாம்.
லேசியாக ஏற்றப்பட்ட காம்போனென்ட்களை ரெண்டர் செய்யும் போது ஏற்படும் பிழைகளைப் பிடிக்க நீங்கள் <ErrorBoundary>
காம்போனென்ட்டைப் பயன்படுத்தலாம். <ErrorBoundary>
காம்போனென்ட் ஒரு பிழை ஏற்பட்டால் ஒரு பின்னடைவு UI-ஐக் காட்ட உங்களை அனுமதிக்கிறது.
எடுத்துக்காட்டு:
import React, { Suspense, lazy } from 'react';
const MyComponent = lazy(() => import('./MyComponent'));
function ErrorFallback() {
return (
Oops! Something went wrong.
);
}
function MyErrorBoundary(props) {
return (
}>
{props.children}
);
}
function App() {
return (
Loading...