தரவை நிர்வகித்தல் மற்றும் வலுவான, பராமரிக்கக்கூடிய பயன்பாடுகளை உருவாக்குதல் ஆகியவை முக்கியமான மென்பொருள் மேம்பாட்டுத் திறன்களாகும். உங்கள் ரியாக்ட் பயன்பாடுகளை மாடுலரைஸ் செய்வதற்கான பொதுவான வழி, ப்ராப் டிரில்லிங்கைப் பயன்படுத்துவதாகும், இது கூறு மரத்தின் கீழே தரவை அனுப்ப உதவுகிறது.
அன்றைய MUO வீடியோ உள்ளடக்கத்துடன் தொடர உருட்டவும்
ஆனால், திட்டங்கள் பெரியதாக இருப்பதால், முட்டு துளையிடுதல் அதன் குறைபாடுகளைக் கொண்டிருக்கலாம். முட்டு துளையிடுதலைச் சுற்றியுள்ள சிக்கல்களை ஆராய்ந்து, என்ன மாற்று வழிகள் உள்ளன என்பதைக் கண்டறியவும்.
முட்டு துளையிடுதலைப் புரிந்துகொள்வது
ப்ராப் டிரில்லிங் என்பது இடைநிலை கூறுகளுக்கு தரவு தேவையா இல்லையா என்பதைப் பொருட்படுத்தாமல், கூறு மரத்தின் கீழே தரவை முட்டுகளாக அனுப்பும் ஒரு நுட்பமாகும்.
துளையிடுதல் என்பது பெற்றோரிடமிருந்து அதன் குழந்தை கூறுகளுக்கு முட்டுகளை அனுப்புவதை உள்ளடக்கியது, மேலும் படிநிலைக்கு கீழே. மரத்தின் கீழ் மட்டங்களில் உள்ள கூறுகளை உயர் நிலை கூறுகள் வழங்கும் தரவை அணுகவும் பயன்படுத்தவும் இயக்குவதே முக்கிய குறிக்கோள்.
முட்டு துளையிடுதலின் குறைபாடுகள்
ப்ராப் டிரில்லிங் தரவைப் பகிர்வதில் உள்ள சிக்கலைத் தீர்க்கும் அதே வேளையில், குறியீடு பராமரிப்பு மற்றும் மேம்பாட்டுத் திறனைத் தடுக்கக்கூடிய பல குறைபாடுகளை இது அறிமுகப்படுத்துகிறது.
1. அதிகரித்த சிக்கலானது
பயன்பாடு வளரும்போது, முட்டு துளையிடுதலை நிர்வகிப்பது மிகவும் கடினமாகிறது. இது கூறுகளின் சார்புகளின் சிக்கலான வலைக்கு வழிவகுக்கும், குறியீட்டைப் புரிந்துகொள்வதற்கும் மாற்றுவதற்கும் கடினமாக்குகிறது.
import ChildComponent from './ChildComponent';
export default function ParentComponent = () => {
const data = 'Prop drilling!';
return ( <div> <ChildComponent data={data} /> </div> );
};
import GrandChildComponent from './GrandChildComponent';
export default function ChildComponent = ({ data }) => {
return ( <div> <GrandChildComponent data={data} /> </div> );
};
import GreatGrandChildComponent from './GreatGrandChildComponent';
export default function GrandChildComponent = ({ data }) => {
return ( <div> <GreatGrandChildComponent data={data} /> </div> );
};
export default function GreatGrandChildComponent = ({ data }) => {
return ( <div> <p>{data}</p> </div> );
};
இங்கே, உயர்மட்ட ParentComponent இலிருந்து தரவு இரண்டு இடைநிலை கூறுகள் மூலம் GreatGrandChildComponent க்கு நகர்கிறது.
கூறு படிநிலை ஆழமாக வளரும்போது, மேலும் பல கூறுகள் முட்டுக்கட்டையை நம்பியிருப்பதால், தரவு ஓட்டத்தைக் கண்டறிந்து நிர்வகிப்பது கடினமாகிறது.
2. இறுக்கமான இணைப்பு
கூறுகள் முட்டுகள் மூலம் ஒன்றையொன்று சார்ந்திருக்கும் போது இது நிகழ்கிறது, அவற்றை மாற்றுவது அல்லது மீண்டும் பயன்படுத்துவது கடினமாகிறது. இது மற்றவற்றைப் பாதிக்காமல் ஒரு கூறுகளில் மாற்றங்களைச் செய்வதை கடினமாக்கும்.
import ChildComponentA from './ChildComponentA';
import ChildComponentB from './ChildComponentB';
export default function ParentComponent = () => {
const sharedData = 'Shared data';
return (
<div>
<ChildComponentA data={sharedData} />
<ChildComponentB data={sharedData} />
</div>
);
};
import GrandChildComponent from './GrandChildComponent';
export default function ChildComponentA = ({ data }) => {
return (
<div>
<p>Component A</p>
<GrandChildComponent data={data} />
</div>
);
};
import GrandChildComponent from './GrandChildComponent';
export default function ChildComponentB = ({ data }) => {
return (
<div>
<p>Component B</p>
<GrandChildComponent data={data} />
</div>
);
};
export default function GrandChildComponent = ({ data }) => {
return (
<div> <p>{data}</p> </div>
);
};
இங்கே, இரண்டு குழந்தை கூறுகளும் தங்கள் பெற்றோர் கூறுகளிலிருந்து ஒரே தரவைப் பெற்று அதை GrandChildComponent க்கு அனுப்புகின்றன.
என் கணினி ஏன் இணைய இணைப்பை இழக்கிறது
தரவு புதுப்பிக்கப்பட்டால், சில தரவைப் பயன்படுத்தாவிட்டாலும், படிநிலையில் உள்ள அனைத்து கூறுகளும் புதுப்பிக்கப்பட வேண்டும். இது கடினமானது மற்றும் நேரத்தை எடுத்துக்கொள்ளும், மேலும் இது பிழைகளை அறிமுகப்படுத்தும் அபாயத்தையும் அதிகரிக்கிறது.
3. குறியீடு பராமரிப்பு
ப்ராப் டிரில்லிங் என்பது ஒரு குறியீடு பராமரிப்புச் சிக்கலாகும், ஏனெனில் புதிய கூறுகளுக்கு படிநிலை வழியாக அனுப்பப்படும் முட்டுக்களுக்கு அணுகல் தேவை. நீங்கள் பல கூறுகளை மாற்ற வேண்டியிருந்தால் இது பிழைகள் மற்றும் முட்டுகள் மாறினால் முரண்பாடுகள் ஏற்படலாம்.
import ChildComponent from './ChildComponent';
export default function ParentComponent = () => {
const [count, setCount] = useState(0);
const incrementCount = () => {
setCount(count + 1);
};
return (
<div>
<ChildComponent count={count} incrementCount={incrementCount} />
</div>
);
};
import GrandChildComponent from './GrandChildComponent';
export default function ChildComponent = ({ count, incrementCount }) => {
return (
<div>
<button onClick={incrementCount}>Increment</button>
<GrandChildComponent count={count} />
</div>
);
};
export default function GrandChildComponent = ({ count }) => {
return (
<div>
<p>Count: {count}</p>
</div>
);
};
இங்கே ParentComponent ஆனது, ChildComponent க்கும், பின்னர் GrandChildComponent க்கும் ஒரு முட்டுக்கட்டையாக எண்ணிக்கை மதிப்பை அனுப்புகிறது.
ஆனால், எண்ணிக்கை மாறினால் அல்லது கூடுதல் பொருட்களை அனுப்ப புதிய விதி இருந்தால், ப்ராப்பைப் பயன்படுத்தும் படிநிலையில் உள்ள ஒவ்வொரு கூறுகளையும் நீங்கள் புதுப்பிக்க வேண்டும். இந்த செயல்முறை பிழை-ஏற்பட்டது, குறியீடு பராமரிப்பை கடினமாக்குகிறது மற்றும் முரண்பாடுகள் அல்லது பிழைகளை அதிகரிக்கிறது.
முட்டு துளையிடுதலுக்கான மாற்றுகளை ஆராய்தல்
ரியாக்ட் சுற்றுச்சூழல் அமைப்பில் பல மாநில மேலாண்மை தீர்வுகள் உள்ளன, அவை முட்டு துளையிடுதலின் குறைபாடுகளை சமாளிக்க நீங்கள் பயன்படுத்தலாம்.
எதிர்வினை சூழல்
எதிர்வினை சூழல் என்பது ஒரு அம்சமாகும், இது முட்டுக்களைக் கடந்து செல்லாமல் கூறுகள் முழுவதும் மாநிலத்தைப் பகிர்வதை செயல்படுத்துகிறது. கூறுகள் அணுகக்கூடிய ஒரு மையப்படுத்தப்பட்ட கடையை இது வழங்குகிறது பயன்பாட்டு சூழல் ஹூக் உடன் . இது செயல்திறனை மேம்படுத்தலாம் மற்றும் மாநிலத்தை நிர்வகிப்பதை எளிதாக்குகிறது.
ஒரு ஐபோனைக் கண்டுபிடிக்க முடியுமா என்று கண்டுபிடித்தேன்
Redux
Redux ஒரு மாநில மேலாண்மை நூலகமாகும், இது ஒரு உலகளாவிய மாநில அங்காடியை வழங்குகிறது. செயல்கள் மற்றும் குறைப்பவர்கள் மூலம் கூறுகள் நிலையை அணுகலாம் மற்றும் புதுப்பிக்கலாம். இது உங்கள் குறியீட்டை ஒழுங்கமைக்க உதவுகிறது மற்றும் பிழைத்திருத்தத்தை எளிதாக்குகிறது.
MobX
MobX கவனிக்கக்கூடிய தரவைப் பயன்படுத்தும் மாநில மேலாண்மை நூலகம். இதன் பொருள் கூறுகள் மாநிலத்தில் ஏற்படும் மாற்றங்களுக்கு குழுசேரலாம் மற்றும் பதிலுக்கு செயல்படலாம். நூலகம் உங்கள் குறியீட்டை மிகவும் வினைத்திறனாக்க முடியும் மற்றும் செயல்திறனை மேம்படுத்த முடியும்.
ஏதோ
ஜோடாய் என்பது ரியாக்டிற்கான ஒரு மாநில மேலாண்மை நூலகம் , அது அணு நிலை மாதிரியைப் பயன்படுத்துகிறது. கூறுகள் அணுகக்கூடிய மற்றும் புதுப்பிக்கக்கூடிய நிலை அணுக்களை உருவாக்க இது உங்களை அனுமதிக்கிறது.
Jotai மூலம், நீங்கள் ப்ராப் டிரில்லிங் தேவையை குறைத்து மேலும் நெறிப்படுத்தப்பட்ட மற்றும் திறமையான மாநில மேலாண்மை அணுகுமுறையை அடையலாம். அதன் குறைந்தபட்ச வடிவமைப்பு மற்றும் செயல்திறனில் கவனம் செலுத்துவது ரியாக்ட் பயன்பாடுகளில் நிலையை நிர்வகிப்பதற்கான ஒரு கட்டாய தேர்வாக அமைகிறது.
மாஸ்டரிங் கூறு தொடர்பாடல்: ப்ராப் டிரில்லிங்கிற்கு அப்பால் உங்கள் கருவிப்பெட்டியை விரிவுபடுத்துதல்
ப்ராப் டிரில்லிங் என்பது பெற்றோர் கூறுகளிலிருந்து குழந்தை கூறுகளுக்கு தரவை அனுப்புவதற்கான ஒரு நுட்பமாகும். தரவைப் பகிர்வதற்கு இது பயனுள்ளதாக இருக்கும், ஆனால் இது பல குறைபாடுகளைக் கொண்டுள்ளது, இது குறியீட்டைப் பராமரிப்பதற்கும் மேம்படுத்துவதற்கும் கடினமாக இருக்கும்.
இந்தக் குறைபாடுகளைப் போக்க, React Context, Redux மற்றும் MobX போன்ற மாற்றுகளைப் பயன்படுத்தலாம். இந்தத் தீர்வுகள் தரவை நிர்வகிக்க மிகவும் மையப்படுத்தப்பட்ட வழியை வழங்குகின்றன, இது குறியீட்டை மேலும் பராமரிக்கக்கூடியதாகவும் அளவிடக்கூடியதாகவும் மாற்றும்.