ರಿಯಾಕ್ಟ್ನ ಕಾಂಕರೆಂಟ್ ರೆಂಡರಿಂಗ್ನ ಆಳವಾದ ವಿಶ್ಲೇಷಣೆ, ಜಾಗತಿಕ ಅಪ್ಲಿಕೇಶನ್ಗಳಿಗಾಗಿ ಕಾರ್ಯಕ್ಷಮತೆ ಮತ್ತು ಬಳಕೆದಾರ ಅನುಭವವನ್ನು ಅತ್ಯುತ್ತಮವಾಗಿಸಲು ಫೈಬರ್ ಆರ್ಕಿಟೆಕ್ಚರ್ ಮತ್ತು ವರ್ಕ್ ಲೂಪ್ ಅನ್ನು ಅನ್ವೇಷಿಸುವುದು.
ರಿಯಾಕ್ಟ್ ಕಾಂಕರೆಂಟ್ ರೆಂಡರಿಂಗ್: ಫೈಬರ್ ಆರ್ಕಿಟೆಕ್ಚರ್ ಮತ್ತು ವರ್ಕ್ ಲೂಪ್ ವಿಶ್ಲೇಷಣೆಯೊಂದಿಗೆ ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಅನ್ಲಾಕ್ ಮಾಡುವುದು
ಫ್ರಂಟ್-ಎಂಡ್ ಡೆವಲಪ್ಮೆಂಟ್ನಲ್ಲಿ ಪ್ರಮುಖ ಶಕ್ತಿಯಾಗಿರುವ ರಿಯಾಕ್ಟ್, ಹೆಚ್ಚು ಸಂಕೀರ್ಣ ಮತ್ತು ಇಂಟರಾಕ್ಟಿವ್ ಬಳಕೆದಾರ ಇಂಟರ್ಫೇಸ್ಗಳ ಬೇಡಿಕೆಗಳನ್ನು ಪೂರೈಸಲು ನಿರಂತರವಾಗಿ ವಿಕಸನಗೊಂಡಿದೆ. ಈ ವಿಕಾಸದಲ್ಲಿ ಅತ್ಯಂತ ಮಹತ್ವದ ಪ್ರಗತಿಗಳಲ್ಲಿ ಒಂದು ರಿಯಾಕ್ಟ್ 16 ನೊಂದಿಗೆ ಪರಿಚಯಿಸಲಾದ ಕಾಂಕರೆಂಟ್ ರೆಂಡರಿಂಗ್ ಆಗಿದೆ. ಈ ಪ್ಯಾರಾಡಿಗ್ಮ್ ಶಿಫ್ಟ್ ರಿಯಾಕ್ಟ್ ಅಪ್ಡೇಟ್ಗಳನ್ನು ಹೇಗೆ ನಿರ್ವಹಿಸುತ್ತದೆ ಮತ್ತು ಕಾಂಪೊನೆಂಟ್ಗಳನ್ನು ರೆಂಡರ್ ಮಾಡುತ್ತದೆ ಎಂಬುದನ್ನು ಮೂಲಭೂತವಾಗಿ ಬದಲಾಯಿಸಿತು, ಗಮನಾರ್ಹ ಕಾರ್ಯಕ್ಷಮತೆಯ ಸುಧಾರಣೆಗಳನ್ನು ಅನ್ಲಾಕ್ ಮಾಡಿತು ಮತ್ತು ಹೆಚ್ಚು ಸ್ಪಂದಿಸುವ ಬಳಕೆದಾರ ಅನುಭವಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿತು. ಈ ಲೇಖನವು ಕಾಂಕರೆಂಟ್ ರೆಂಡರಿಂಗ್ನ ಮೂಲ ಪರಿಕಲ್ಪನೆಗಳನ್ನು ಪರಿಶೀಲಿಸುತ್ತದೆ, ಫೈಬರ್ ಆರ್ಕಿಟೆಕ್ಚರ್ ಮತ್ತು ವರ್ಕ್ ಲೂಪ್ ಅನ್ನು ಅನ್ವೇಷಿಸುತ್ತದೆ, ಮತ್ತು ಈ ಯಾಂತ್ರಿಕತೆಗಳು ಹೇಗೆ ಸುಗಮ, ಹೆಚ್ಚು ದಕ್ಷ ರಿಯಾಕ್ಟ್ ಅಪ್ಲಿಕೇಶನ್ಗಳಿಗೆ ಕೊಡುಗೆ ನೀಡುತ್ತವೆ ಎಂಬುದರ ಕುರಿತು ಒಳನೋಟಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ.
ಕಾಂಕರೆಂಟ್ ರೆಂಡರಿಂಗ್ನ ಅಗತ್ಯವನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು
ಕಾಂಕರೆಂಟ್ ರೆಂಡರಿಂಗ್ಗೆ ಮೊದಲು, ರಿಯಾಕ್ಟ್ ಸಿಂಕ್ರೋನಸ್ ರೀತಿಯಲ್ಲಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತಿತ್ತು. ಒಂದು ಅಪ್ಡೇಟ್ ಸಂಭವಿಸಿದಾಗ (ಉದಾ., ಸ್ಟೇಟ್ ಬದಲಾವಣೆ, ಪ್ರಾಪ್ ಅಪ್ಡೇಟ್), ರಿಯಾಕ್ಟ್ ಸಂಪೂರ್ಣ ಕಾಂಪೊನೆಂಟ್ ಟ್ರೀಯನ್ನು ಒಂದೇ, ತಡೆರಹಿತ ಕಾರ್ಯಾಚರಣೆಯಲ್ಲಿ ರೆಂಡರ್ ಮಾಡಲು ಪ್ರಾರಂಭಿಸುತ್ತಿತ್ತು. ಈ ಸಿಂಕ್ರೋನಸ್ ರೆಂಡರಿಂಗ್ ಕಾರ್ಯಕ್ಷಮತೆಯ ಅಡಚಣೆಗಳಿಗೆ ಕಾರಣವಾಗಬಹುದು, ವಿಶೇಷವಾಗಿ ದೊಡ್ಡ ಕಾಂಪೊನೆಂಟ್ ಟ್ರೀಗಳು ಅಥವಾ ಗಣನಾತ್ಮಕವಾಗಿ ದುಬಾರಿಯಾದ ಕಾರ್ಯಾಚರಣೆಗಳೊಂದಿಗೆ ವ್ಯವಹರಿಸುವಾಗ. ಈ ರೆಂಡರಿಂಗ್ ಅವಧಿಗಳಲ್ಲಿ, ಬ್ರೌಸರ್ ಪ್ರತಿಕ್ರಿಯಿಸುವುದನ್ನು ನಿಲ್ಲಿಸುತ್ತಿತ್ತು, ಇದು ಜರ್ಕಿ (janky) ಮತ್ತು ನಿರಾಶಾದಾಯಕ ಬಳಕೆದಾರ ಅನುಭವಕ್ಕೆ ಕಾರಣವಾಗುತ್ತಿತ್ತು. ಇದನ್ನು ಸಾಮಾನ್ಯವಾಗಿ "ಮುಖ್ಯ ಥ್ರೆಡ್ ಅನ್ನು ನಿರ್ಬಂಧಿಸುವುದು" (blocking the main thread) ಎಂದು ಕರೆಯಲಾಗುತ್ತದೆ.
ಬಳಕೆದಾರರು ಟೆಕ್ಸ್ಟ್ ಫೀಲ್ಡ್ನಲ್ಲಿ ಟೈಪ್ ಮಾಡುತ್ತಿರುವ ಸನ್ನಿವೇಶವನ್ನು ಕಲ್ಪಿಸಿಕೊಳ್ಳಿ. ಟೈಪ್ ಮಾಡಿದ ಪಠ್ಯವನ್ನು ಪ್ರದರ್ಶಿಸುವ ಕಾಂಪೊನೆಂಟ್ ದೊಡ್ಡ, ಸಂಕೀರ್ಣ ಕಾಂಪೊನೆಂಟ್ ಟ್ರೀಯ ಭಾಗವಾಗಿದ್ದರೆ, ಪ್ರತಿ ಕೀಸ್ಟ್ರೋಕ್ ಮುಖ್ಯ ಥ್ರೆಡ್ ಅನ್ನು ನಿರ್ಬಂಧಿಸುವ ಮರು-ರೆಂಡರ್ ಅನ್ನು ಪ್ರಚೋದಿಸಬಹುದು. ಇದು ಗಮನಾರ್ಹವಾದ ವಿಳಂಬ ಮತ್ತು ಕಳಪೆ ಬಳಕೆದಾರ ಅನುಭವಕ್ಕೆ ಕಾರಣವಾಗುತ್ತದೆ.
ಕಾಂಕರೆಂಟ್ ರೆಂಡರಿಂಗ್ ಈ ಸಮಸ್ಯೆಯನ್ನು ಪರಿಹರಿಸುತ್ತದೆ, ರೆಂಡರಿಂಗ್ ಕಾರ್ಯಗಳನ್ನು ಸಣ್ಣ, ನಿರ್ವಹಿಸಬಹುದಾದ ಕೆಲಸದ ಘಟಕಗಳಾಗಿ ವಿಭಜಿಸಲು ರಿಯಾಕ್ಟ್ಗೆ ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ. ಈ ಘಟಕಗಳಿಗೆ ಆದ್ಯತೆ ನೀಡಬಹುದು, ವಿರಾಮಗೊಳಿಸಬಹುದು ಮತ್ತು ಅಗತ್ಯವಿದ್ದಾಗ ಪುನರಾರಂಭಿಸಬಹುದು, ಇದರಿಂದಾಗಿ ರಿಯಾಕ್ಟ್ ರೆಂಡರಿಂಗ್ ಕಾರ್ಯಗಳನ್ನು ಇತರ ಬ್ರೌಸರ್ ಕಾರ್ಯಾಚರಣೆಗಳೊಂದಿಗೆ (ಬಳಕೆದಾರರ ಇನ್ಪುಟ್ ಅಥವಾ ನೆಟ್ವರ್ಕ್ ವಿನಂತಿಗಳನ್ನು ನಿರ್ವಹಿಸುವಂತಹ) ಸಂಯೋಜಿಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ. ಈ ವಿಧಾನವು ಮುಖ್ಯ ಥ್ರೆಡ್ ದೀರ್ಘಕಾಲದವರೆಗೆ ನಿರ್ಬಂಧಿಸಲ್ಪಡುವುದನ್ನು ತಡೆಯುತ್ತದೆ, ಇದು ಹೆಚ್ಚು ಸ್ಪಂದಿಸುವ ಮತ್ತು ಸುಗಮ ಬಳಕೆದಾರ ಅನುಭವಕ್ಕೆ ಕಾರಣವಾಗುತ್ತದೆ. ಇದನ್ನು ರಿಯಾಕ್ಟ್ನ ರೆಂಡರಿಂಗ್ ಪ್ರಕ್ರಿಯೆಯ ಮಲ್ಟಿಟಾಸ್ಕಿಂಗ್ ಎಂದು ಭಾವಿಸಿ.
ಫೈಬರ್ ಆರ್ಕಿಟೆಕ್ಚರ್ ಅನ್ನು ಪರಿಚಯಿಸುವುದು
ಕಾಂಕರೆಂಟ್ ರೆಂಡರಿಂಗ್ನ ಹೃದಯಭಾಗದಲ್ಲಿ ಫೈಬರ್ ಆರ್ಕಿಟೆಕ್ಚರ್ ಇದೆ. ಫೈಬರ್, ರಿಯಾಕ್ಟ್ನ ಆಂತರಿಕ ರಿಕನ್ಸಿಲಿಯೇಷನ್ ಅಲ್ಗಾರಿದಮ್ನ ಸಂಪೂರ್ಣ ಮರು-ಅನುಷ್ಠಾನವನ್ನು ಪ್ರತಿನಿಧಿಸುತ್ತದೆ. ಹಿಂದಿನ ಸಿಂಕ್ರೋನಸ್ ರಿಕನ್ಸಿಲಿಯೇಷನ್ ಪ್ರಕ್ರಿಯೆಗಿಂತ ಭಿನ್ನವಾಗಿ, ಫೈಬರ್ ಅಪ್ಡೇಟ್ಗಳನ್ನು ನಿರ್ವಹಿಸಲು ಮತ್ತು ಕಾಂಪೊನೆಂಟ್ಗಳನ್ನು ರೆಂಡರ್ ಮಾಡಲು ಹೆಚ್ಚು ಅತ್ಯಾಧುನಿಕ ಮತ್ತು ಸೂಕ್ಷ್ಮ ವಿಧಾನವನ್ನು ಪರಿಚಯಿಸುತ್ತದೆ.
ಫೈಬರ್ ಎಂದರೇನು?
ಫೈಬರ್ ಅನ್ನು ಕಾಂಪೊನೆಂಟ್ ಇನ್ಸ್ಟಾನ್ಸ್ನ ವರ್ಚುವಲ್ ಪ್ರಾತಿನಿಧ್ಯ ಎಂದು ಪರಿಕಲ್ಪನಾತ್ಮಕವಾಗಿ ಅರ್ಥಮಾಡಿಕೊಳ್ಳಬಹುದು. ನಿಮ್ಮ ರಿಯಾಕ್ಟ್ ಅಪ್ಲಿಕೇಶನ್ನಲ್ಲಿನ ಪ್ರತಿಯೊಂದು ಕಾಂಪೊನೆಂಟ್ ಅದಕ್ಕೆ ಅನುಗುಣವಾದ ಫೈಬರ್ ನೋಡ್ನೊಂದಿಗೆ ಸಂಬಂಧ ಹೊಂದಿದೆ. ಈ ಫೈಬರ್ ನೋಡ್ಗಳು ಕಾಂಪೊನೆಂಟ್ ಟ್ರೀಯನ್ನು ಪ್ರತಿಬಿಂಬಿಸುವ ಒಂದು ಟ್ರೀ ರಚನೆಯನ್ನು ರೂಪಿಸುತ್ತವೆ. ಪ್ರತಿಯೊಂದು ಫೈಬರ್ ನೋಡ್ ಕಾಂಪೊನೆಂಟ್, ಅದರ ಪ್ರಾಪ್ಸ್, ಅದರ ಮಕ್ಕಳು, ಮತ್ತು ಅದರ ಪ್ರಸ್ತುತ ಸ್ಥಿತಿಯ ಬಗ್ಗೆ ಮಾಹಿತಿಯನ್ನು ಹೊಂದಿರುತ್ತದೆ. ಮುಖ್ಯವಾಗಿ, ಇದು ಆ ಕಾಂಪೊನೆಂಟ್ಗಾಗಿ ಮಾಡಬೇಕಾದ ಕೆಲಸದ ಬಗ್ಗೆಯೂ ಮಾಹಿತಿಯನ್ನು ಹೊಂದಿರುತ್ತದೆ.
ಫೈಬರ್ ನೋಡ್ನ ಪ್ರಮುಖ ಪ್ರಾಪರ್ಟಿಗಳು:
- type: ಕಾಂಪೊನೆಂಟ್ ಪ್ರಕಾರ (ಉದಾ.,
div,MyComponent). - key: ಕಾಂಪೊನೆಂಟ್ಗೆ ನಿಗದಿಪಡಿಸಲಾದ ಅನನ್ಯ ಕೀ (ದಕ್ಷ ರಿಕನ್ಸಿಲಿಯೇಷನ್ಗಾಗಿ ಬಳಸಲಾಗುತ್ತದೆ).
- props: ಕಾಂಪೊನೆಂಟ್ಗೆ ರವಾನಿಸಲಾದ ಪ್ರಾಪ್ಸ್.
- child: ಕಾಂಪೊನೆಂಟ್ನ ಮೊದಲ ಮಗುವನ್ನು ಪ್ರತಿನಿಧಿಸುವ ಫೈಬರ್ ನೋಡ್ಗೆ ಪಾಯಿಂಟರ್.
- sibling: ಕಾಂಪೊನೆಂಟ್ನ ಮುಂದಿನ ಸಹೋದರನನ್ನು ಪ್ರತಿನಿಧಿಸುವ ಫೈಬರ್ ನೋಡ್ಗೆ ಪಾಯಿಂಟರ್.
- return: ಕಾಂಪೊನೆಂಟ್ನ ಪೋಷಕರನ್ನು ಪ್ರತಿನಿಧಿಸುವ ಫೈಬರ್ ನೋಡ್ಗೆ ಪಾಯಿಂಟರ್.
- stateNode: ನಿಜವಾದ ಕಾಂಪೊನೆಂಟ್ ಇನ್ಸ್ಟಾನ್ಸ್ಗೆ ಉಲ್ಲೇಖ (ಉದಾ., ಹೋಸ್ಟ್ ಕಾಂಪೊನೆಂಟ್ಗಳಿಗಾಗಿ DOM ನೋಡ್, ಕ್ಲಾಸ್ ಕಾಂಪೊನೆಂಟ್ ಇನ್ಸ್ಟಾನ್ಸ್).
- alternate: ಕಾಂಪೊನೆಂಟ್ನ ಹಿಂದಿನ ಆವೃತ್ತಿಯನ್ನು ಪ್ರತಿನಿಧಿಸುವ ಫೈಬರ್ ನೋಡ್ಗೆ ಪಾಯಿಂಟರ್.
- effectTag: ಕಾಂಪೊನೆಂಟ್ಗೆ ಅಗತ್ಯವಿರುವ ಅಪ್ಡೇಟ್ ಪ್ರಕಾರವನ್ನು ಸೂಚಿಸುವ ಫ್ಲ್ಯಾಗ್ (ಉದಾ., ಪ್ಲೇಸ್ಮೆಂಟ್, ಅಪ್ಡೇಟ್, ಡಿಲೀಷನ್).
ಫೈಬರ್ ಟ್ರೀ
ಫೈಬರ್ ಟ್ರೀ ಒಂದು ಪರ್ಸಿಸ್ಟೆಂಟ್ ಡೇಟಾ ಸ್ಟ್ರಕ್ಚರ್ ಆಗಿದ್ದು, ಇದು ಅಪ್ಲಿಕೇಶನ್ನ ಯುಐ (UI) ನ ಪ್ರಸ್ತುತ ಸ್ಥಿತಿಯನ್ನು ಪ್ರತಿನಿಧಿಸುತ್ತದೆ. ಒಂದು ಅಪ್ಡೇಟ್ ಸಂಭವಿಸಿದಾಗ, ರಿಯಾಕ್ಟ್ ಹಿನ್ನೆಲೆಯಲ್ಲಿ ಹೊಸ ಫೈಬರ್ ಟ್ರೀಯನ್ನು ರಚಿಸುತ್ತದೆ, ಇದು ಅಪ್ಡೇಟ್ನ ನಂತರ ಯುಐನ ಅಪೇಕ್ಷಿತ ಸ್ಥಿತಿಯನ್ನು ಪ್ರತಿನಿಧಿಸುತ್ತದೆ. ಈ ಹೊಸ ಟ್ರೀಯನ್ನು "ವರ್ಕ್-ಇನ್-ಪ್ರೋಗ್ರೆಸ್" ಟ್ರೀ ಎಂದು ಕರೆಯಲಾಗುತ್ತದೆ. ವರ್ಕ್-ಇನ್-ಪ್ರೋಗ್ರೆಸ್ ಟ್ರೀ ಪೂರ್ಣಗೊಂಡ ನಂತರ, ರಿಯಾಕ್ಟ್ ಅದನ್ನು ಪ್ರಸ್ತುತ ಟ್ರೀಯೊಂದಿಗೆ ಬದಲಾಯಿಸುತ್ತದೆ, ಬದಲಾವಣೆಗಳನ್ನು ಬಳಕೆದಾರರಿಗೆ ಗೋಚರವಾಗುವಂತೆ ಮಾಡುತ್ತದೆ.
ಈ ಡ್ಯುಯಲ್-ಟ್ರೀ ವಿಧಾನವು ರಿಯಾಕ್ಟ್ಗೆ ರೆಂಡರಿಂಗ್ ಅಪ್ಡೇಟ್ಗಳನ್ನು ನಾನ್-ಬ್ಲಾಕಿಂಗ್ ರೀತಿಯಲ್ಲಿ ನಿರ್ವಹಿಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ. ವರ್ಕ್-ಇನ್-ಪ್ರೋಗ್ರೆಸ್ ಟ್ರೀ ಹಿನ್ನೆಲೆಯಲ್ಲಿ ನಿರ್ಮಿಸಲ್ಪಡುತ್ತಿರುವಾಗ ಪ್ರಸ್ತುತ ಟ್ರೀ ಬಳಕೆದಾರರಿಗೆ ಗೋಚರವಾಗಿರುತ್ತದೆ. ಇದು ಅಪ್ಡೇಟ್ಗಳ ಸಮಯದಲ್ಲಿ ಯುಐ ಫ್ರೀಜ್ ಆಗುವುದನ್ನು ಅಥವಾ ಪ್ರತಿಕ್ರಿಯಿಸುವುದನ್ನು ನಿಲ್ಲಿಸುವುದನ್ನು ತಡೆಯುತ್ತದೆ.
ಫೈಬರ್ ಆರ್ಕಿಟೆಕ್ಚರ್ನ ಪ್ರಯೋಜನಗಳು
- ತಡೆಹಿಡಿಯಬಹುದಾದ ರೆಂಡರಿಂಗ್ (Interruptible Rendering): ಫೈಬರ್ ರಿಯಾಕ್ಟ್ಗೆ ರೆಂಡರಿಂಗ್ ಕಾರ್ಯಗಳನ್ನು ವಿರಾಮಗೊಳಿಸಲು ಮತ್ತು ಪುನರಾರಂಭಿಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ, ಬಳಕೆದಾರರ ಸಂವಹನಗಳಿಗೆ ಆದ್ಯತೆ ನೀಡಲು ಮತ್ತು ಮುಖ್ಯ ಥ್ರೆಡ್ ನಿರ್ಬಂಧಿಸಲ್ಪಡುವುದನ್ನು ತಡೆಯಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ.
- ಹೆಚ್ಚುತ್ತಿರುವ ರೆಂಡರಿಂಗ್ (Incremental Rendering): ಫೈಬರ್ ರಿಯಾಕ್ಟ್ಗೆ ರೆಂಡರಿಂಗ್ ಅಪ್ಡೇಟ್ಗಳನ್ನು ಸಣ್ಣ ಕೆಲಸದ ಘಟಕಗಳಾಗಿ ವಿಭಜಿಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ, ಇವುಗಳನ್ನು ಕಾಲಾನಂತರದಲ್ಲಿ ಹಂತಹಂತವಾಗಿ ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಬಹುದು.
- ಆದ್ಯತೆ (Prioritization): ಫೈಬರ್ ರಿಯಾಕ್ಟ್ಗೆ ವಿವಿಧ ರೀತಿಯ ಅಪ್ಡೇಟ್ಗಳಿಗೆ ಆದ್ಯತೆ ನೀಡಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ, ನಿರ್ಣಾಯಕ ಅಪ್ಡೇಟ್ಗಳು (ಉದಾ., ಬಳಕೆದಾರರ ಇನ್ಪುಟ್) ಕಡಿಮೆ ಪ್ರಮುಖ ಅಪ್ಡೇಟ್ಗಳಿಗಿಂತ (ಉದಾ., ಹಿನ್ನೆಲೆ ಡೇಟಾ ಫೆಚಿಂಗ್) ಮೊದಲು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಲ್ಪಡುವುದನ್ನು ಖಚಿತಪಡಿಸುತ್ತದೆ.
- ಸುಧಾರಿತ ದೋಷ ನಿರ್ವಹಣೆ (Improved Error Handling): ಫೈಬರ್ ರೆಂಡರಿಂಗ್ ಸಮಯದಲ್ಲಿ ದೋಷಗಳನ್ನು ನಿರ್ವಹಿಸುವುದನ್ನು ಸುಲಭಗೊಳಿಸುತ್ತದೆ, ಏಕೆಂದರೆ ದೋಷ ಸಂಭವಿಸಿದಲ್ಲಿ ರಿಯಾಕ್ಟ್ ಹಿಂದಿನ ಸ್ಥಿರ ಸ್ಥಿತಿಗೆ ಹಿಂತಿರುಗಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ.
ವರ್ಕ್ ಲೂಪ್: ಫೈಬರ್ ಕಾಂಕರೆನ್ಸಿಯನ್ನು ಹೇಗೆ ಸಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ
ವರ್ಕ್ ಲೂಪ್ ಕಾಂಕರೆಂಟ್ ರೆಂಡರಿಂಗ್ ಅನ್ನು ಚಾಲನೆ ಮಾಡುವ ಇಂಜಿನ್ ಆಗಿದೆ. ಇದು ಫೈಬರ್ ಟ್ರೀಯನ್ನು ಸಂಚರಿಸುವ, ಪ್ರತಿ ಫೈಬರ್ ನೋಡ್ನಲ್ಲಿ ಕೆಲಸ ನಿರ್ವಹಿಸುವ ಮತ್ತು ಯುಐ ಅನ್ನು ಹಂತಹಂತವಾಗಿ ಅಪ್ಡೇಟ್ ಮಾಡುವ ಒಂದು ರಿಕರ್ಸಿವ್ ಫಂಕ್ಷನ್ ಆಗಿದೆ. ವರ್ಕ್ ಲೂಪ್ ಈ ಕೆಳಗಿನ ಕಾರ್ಯಗಳಿಗೆ ಜವಾಬ್ದಾರವಾಗಿದೆ:
- ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಲು ಮುಂದಿನ ಫೈಬರ್ ಅನ್ನು ಆಯ್ಕೆ ಮಾಡುವುದು.
- ಫೈಬರ್ನಲ್ಲಿ ಕೆಲಸ ನಿರ್ವಹಿಸುವುದು (ಉದಾ., ಹೊಸ ಸ್ಥಿತಿಯನ್ನು ಲೆಕ್ಕಾಚಾರ ಮಾಡುವುದು, ಪ್ರಾಪ್ಸ್ಗಳನ್ನು ಹೋಲಿಸುವುದು, ಕಾಂಪೊನೆಂಟ್ ಅನ್ನು ರೆಂಡರ್ ಮಾಡುವುದು).
- ಕೆಲಸದ ಫಲಿತಾಂಶಗಳೊಂದಿಗೆ ಫೈಬರ್ ಟ್ರೀಯನ್ನು ಅಪ್ಡೇಟ್ ಮಾಡುವುದು.
- ಹೆಚ್ಚಿನ ಕೆಲಸವನ್ನು ಮಾಡಲು ವೇಳಾಪಟ್ಟಿ ಮಾಡುವುದು.
ವರ್ಕ್ ಲೂಪ್ನ ಹಂತಗಳು
ವರ್ಕ್ ಲೂಪ್ ಎರಡು ಮುಖ್ಯ ಹಂತಗಳನ್ನು ಒಳಗೊಂಡಿದೆ:
- ರೆಂಡರ್ ಹಂತ (ರಿಕನ್ಸಿಲಿಯೇಷನ್ ಹಂತ ಎಂದೂ ಕರೆಯುತ್ತಾರೆ): ಈ ಹಂತವು ವರ್ಕ್-ಇನ್-ಪ್ರೋಗ್ರೆಸ್ ಫೈಬರ್ ಟ್ರೀಯನ್ನು ನಿರ್ಮಿಸಲು ಜವಾಬ್ದಾರವಾಗಿದೆ. ಈ ಹಂತದಲ್ಲಿ, ರಿಯಾಕ್ಟ್ ಫೈಬರ್ ಟ್ರೀಯನ್ನು ಸಂಚರಿಸುತ್ತದೆ, ಪ್ರಸ್ತುತ ಟ್ರೀಯನ್ನು ಅಪೇಕ್ಷಿತ ಸ್ಥಿತಿಯೊಂದಿಗೆ ಹೋಲಿಸುತ್ತದೆ ಮತ್ತು ಯಾವ ಬದಲಾವಣೆಗಳನ್ನು ಮಾಡಬೇಕೆಂದು ನಿರ್ಧರಿಸುತ್ತದೆ. ಈ ಹಂತವು ಅಸಿಂಕ್ರೋನಸ್ ಮತ್ತು ತಡೆಹಿಡಿಯಬಹುದಾದದು. ಇದು DOM ನಲ್ಲಿ ಏನು ಬದಲಾಯಿಸಬೇಕು ಎಂಬುದನ್ನು ನಿರ್ಧರಿಸುತ್ತದೆ.
- ಕಮಿಟ್ ಹಂತ: ಈ ಹಂತವು ನಿಜವಾದ DOM ಗೆ ಬದಲಾವಣೆಗಳನ್ನು ಅನ್ವಯಿಸಲು ಜವಾಬ್ದಾರವಾಗಿದೆ. ಈ ಹಂತದಲ್ಲಿ, ರಿಯಾಕ್ಟ್ DOM ನೋಡ್ಗಳನ್ನು ಅಪ್ಡೇಟ್ ಮಾಡುತ್ತದೆ, ಹೊಸ ನೋಡ್ಗಳನ್ನು ಸೇರಿಸುತ್ತದೆ, ಮತ್ತು ಹಳೆಯ ನೋಡ್ಗಳನ್ನು ತೆಗೆದುಹಾಕುತ್ತದೆ. ಈ ಹಂತವು ಸಿಂಕ್ರೋನಸ್ ಮತ್ತು ತಡೆಹಿಡಿಯಲಾಗದದು. ಇದು ನಿಜವಾಗಿಯೂ DOM ಅನ್ನು ಬದಲಾಯಿಸುತ್ತದೆ.
ವರ್ಕ್ ಲೂಪ್ ಕಾಂಕರೆನ್ಸಿಯನ್ನು ಹೇಗೆ ಸಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ
ಕಾಂಕರೆಂಟ್ ರೆಂಡರಿಂಗ್ನ ಕೀಲಿಯು ರೆಂಡರ್ ಹಂತವು ಅಸಿಂಕ್ರೋನಸ್ ಮತ್ತು ತಡೆಹಿಡಿಯಬಹುದಾದದು ಎಂಬ ಅಂಶದಲ್ಲಿದೆ. ಇದರರ್ಥ, ಬ್ರೌಸರ್ಗೆ ಬಳಕೆದಾರರ ಇನ್ಪುಟ್ ಅಥವಾ ನೆಟ್ವರ್ಕ್ ವಿನಂತಿಗಳಂತಹ ಇತರ ಕಾರ್ಯಗಳನ್ನು ನಿರ್ವಹಿಸಲು ಅನುವು ಮಾಡಿಕೊಡಲು ರಿಯಾಕ್ಟ್ ಯಾವುದೇ ಸಮಯದಲ್ಲಿ ರೆಂಡರ್ ಹಂತವನ್ನು ವಿರಾಮಗೊಳಿಸಬಹುದು. ಬ್ರೌಸರ್ ಐಡಲ್ ಆಗಿದ್ದಾಗ, ರಿಯಾಕ್ಟ್ ರೆಂಡರ್ ಹಂತವನ್ನು ನಿಲ್ಲಿಸಿದ ಸ್ಥಳದಿಂದ ಪುನರಾರಂಭಿಸಬಹುದು.
ರೆಂಡರ್ ಹಂತವನ್ನು ವಿರಾಮಗೊಳಿಸುವ ಮತ್ತು ಪುನರಾರಂಭಿಸುವ ಈ ಸಾಮರ್ಥ್ಯವು ರಿಯಾಕ್ಟ್ಗೆ ರೆಂಡರಿಂಗ್ ಕಾರ್ಯಗಳನ್ನು ಇತರ ಬ್ರೌಸರ್ ಕಾರ್ಯಾಚರಣೆಗಳೊಂದಿಗೆ ಸಂಯೋಜಿಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ, ಮುಖ್ಯ ಥ್ರೆಡ್ ನಿರ್ಬಂಧಿಸಲ್ಪಡುವುದನ್ನು ತಡೆಯುತ್ತದೆ ಮತ್ತು ಹೆಚ್ಚು ಸ್ಪಂದಿಸುವ ಬಳಕೆದಾರ ಅನುಭವವನ್ನು ಖಚಿತಪಡಿಸುತ್ತದೆ. ಮತ್ತೊಂದೆಡೆ, ಕಮಿಟ್ ಹಂತವು ಯುಐನಲ್ಲಿ ಸ್ಥಿರತೆಯನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು ಸಿಂಕ್ರೋನಸ್ ಆಗಿರಬೇಕು. ಆದಾಗ್ಯೂ, ಕಮಿಟ್ ಹಂತವು ಸಾಮಾನ್ಯವಾಗಿ ರೆಂಡರ್ ಹಂತಕ್ಕಿಂತ ಹೆಚ್ಚು ವೇಗವಾಗಿರುತ್ತದೆ, ಆದ್ದರಿಂದ ಇದು ಸಾಮಾನ್ಯವಾಗಿ ಕಾರ್ಯಕ್ಷಮತೆಯ ಅಡಚಣೆಗಳಿಗೆ ಕಾರಣವಾಗುವುದಿಲ್ಲ.
ವರ್ಕ್ ಲೂಪ್ನಲ್ಲಿ ಆದ್ಯತೆ
ರಿಯಾಕ್ಟ್ ಯಾವ ಫೈಬರ್ ನೋಡ್ಗಳನ್ನು ಮೊದಲು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಬೇಕು ಎಂಬುದನ್ನು ನಿರ್ಧರಿಸಲು ಆದ್ಯತೆ-ಆಧಾರಿತ ವೇಳಾಪಟ್ಟಿ ಅಲ್ಗಾರಿದಮ್ ಅನ್ನು ಬಳಸುತ್ತದೆ. ಈ ಅಲ್ಗಾರಿದಮ್ ಪ್ರತಿ ಅಪ್ಡೇಟ್ಗೆ ಅದರ ಪ್ರಾಮುಖ್ಯತೆಯ ಆಧಾರದ ಮೇಲೆ ಆದ್ಯತೆಯ ಮಟ್ಟವನ್ನು ನಿಗದಿಪಡಿಸುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, ಬಳಕೆದಾರರ ಇನ್ಪುಟ್ನಿಂದ ಪ್ರಚೋದಿಸಲ್ಪಟ್ಟ ಅಪ್ಡೇಟ್ಗಳಿಗೆ ಸಾಮಾನ್ಯವಾಗಿ ಹಿನ್ನೆಲೆ ಡೇಟಾ ಫೆಚಿಂಗ್ನಿಂದ ಪ್ರಚೋದಿಸಲ್ಪಟ್ಟ ಅಪ್ಡೇಟ್ಗಳಿಗಿಂತ ಹೆಚ್ಚಿನ ಆದ್ಯತೆಯನ್ನು ನೀಡಲಾಗುತ್ತದೆ.
ವರ್ಕ್ ಲೂಪ್ ಯಾವಾಗಲೂ ಅತ್ಯಧಿಕ ಆದ್ಯತೆಯ ಫೈಬರ್ ನೋಡ್ಗಳನ್ನು ಮೊದಲು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸುತ್ತದೆ. ಇದು ನಿರ್ಣಾಯಕ ಅಪ್ಡೇಟ್ಗಳನ್ನು ತ್ವರಿತವಾಗಿ ಪ್ರಕ್ರಿಯೆಗೊಳಿಸುವುದನ್ನು ಖಚಿತಪಡಿಸುತ್ತದೆ, ಸ್ಪಂದಿಸುವ ಬಳಕೆದಾರ ಅನುಭವವನ್ನು ಒದಗಿಸುತ್ತದೆ. ಕಡಿಮೆ ಪ್ರಮುಖ ಅಪ್ಡೇಟ್ಗಳು ಬ್ರೌಸರ್ ಐಡಲ್ ಆಗಿದ್ದಾಗ ಹಿನ್ನೆಲೆಯಲ್ಲಿ ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಲ್ಪಡುತ್ತವೆ.
ಈ ಆದ್ಯತಾ ವ್ಯವಸ್ಥೆಯು ಸುಗಮ ಬಳಕೆದಾರ ಅನುಭವವನ್ನು ಕಾಪಾಡಿಕೊಳ್ಳಲು ನಿರ್ಣಾಯಕವಾಗಿದೆ, ವಿಶೇಷವಾಗಿ ಹಲವಾರು ಏಕಕಾಲೀನ ಅಪ್ಡೇಟ್ಗಳನ್ನು ಹೊಂದಿರುವ ಸಂಕೀರ್ಣ ಅಪ್ಲಿಕೇಶನ್ಗಳಲ್ಲಿ. ಬಳಕೆದಾರರು ಸರ್ಚ್ ಬಾರ್ನಲ್ಲಿ ಟೈಪ್ ಮಾಡುತ್ತಿರುವಾಗ, ಅದೇ ಸಮಯದಲ್ಲಿ ಅಪ್ಲಿಕೇಶನ್ ಸೂಚಿಸಿದ ಹುಡುಕಾಟ ಪದಗಳ ಪಟ್ಟಿಯನ್ನು ತಂದು ಪ್ರದರ್ಶಿಸುತ್ತಿರುವ ಸನ್ನಿವೇಶವನ್ನು ಪರಿಗಣಿಸಿ. ಬಳಕೆದಾರರ ಟೈಪಿಂಗ್ಗೆ ಸಂಬಂಧಿಸಿದ ಅಪ್ಡೇಟ್ಗಳಿಗೆ ಆದ್ಯತೆ ನೀಡಬೇಕು, ಟೆಕ್ಸ್ಟ್ ಫೀಲ್ಡ್ ಸ್ಪಂದನಶೀಲವಾಗಿರುವುದನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು, ಆದರೆ ಸೂಚಿಸಿದ ಹುಡುಕಾಟ ಪದಗಳಿಗೆ ಸಂಬಂಧಿಸಿದ ಅಪ್ಡೇಟ್ಗಳನ್ನು ಹಿನ್ನೆಲೆಯಲ್ಲಿ ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಬಹುದು.
ಕಾಂಕರೆಂಟ್ ರೆಂಡರಿಂಗ್ನ ಪ್ರಾಯೋಗಿಕ ಉದಾಹರಣೆಗಳು
ಕಾಂಕರೆಂಟ್ ರೆಂಡರಿಂಗ್ ರಿಯಾಕ್ಟ್ ಅಪ್ಲಿಕೇಶನ್ಗಳ ಕಾರ್ಯಕ್ಷಮತೆ ಮತ್ತು ಬಳಕೆದಾರ ಅನುಭವವನ್ನು ಹೇಗೆ ಸುಧಾರಿಸಬಹುದು ಎಂಬುದರ ಕೆಲವು ಪ್ರಾಯೋಗಿಕ ಉದಾಹರಣೆಗಳನ್ನು ಪರಿಶೀಲಿಸೋಣ.
1. ಬಳಕೆದಾರರ ಇನ್ಪುಟ್ ಅನ್ನು ಡಿಬೌನ್ಸ್ ಮಾಡುವುದು
ಬಳಕೆದಾರರು ಟೈಪ್ ಮಾಡುವಾಗ ಹುಡುಕಾಟ ಫಲಿತಾಂಶಗಳನ್ನು ಪ್ರದರ್ಶಿಸುವ ಸರ್ಚ್ ಬಾರ್ ಅನ್ನು ಪರಿಗಣಿಸಿ. ಕಾಂಕರೆಂಟ್ ರೆಂಡರಿಂಗ್ ಇಲ್ಲದೆ, ಪ್ರತಿ ಕೀಸ್ಟ್ರೋಕ್ ಸಂಪೂರ್ಣ ಹುಡುಕಾಟ ಫಲಿತಾಂಶಗಳ ಪಟ್ಟಿಯ ಮರು-ರೆಂಡರ್ ಅನ್ನು ಪ್ರಚೋದಿಸಬಹುದು, ಇದು ಕಾರ್ಯಕ್ಷಮತೆಯ ಸಮಸ್ಯೆಗಳಿಗೆ ಮತ್ತು ಜರ್ಕಿ ಬಳಕೆದಾರ ಅನುಭವಕ್ಕೆ ಕಾರಣವಾಗುತ್ತದೆ.
ಕಾಂಕರೆಂಟ್ ರೆಂಡರಿಂಗ್ನೊಂದಿಗೆ, ಬಳಕೆದಾರರು ಅಲ್ಪಾವಧಿಗೆ ಟೈಪ್ ಮಾಡುವುದನ್ನು ನಿಲ್ಲಿಸುವವರೆಗೆ ಹುಡುಕಾಟ ಫಲಿತಾಂಶಗಳ ರೆಂಡರಿಂಗ್ ಅನ್ನು ವಿಳಂಬಗೊಳಿಸಲು ನಾವು ಡಿಬೌನ್ಸಿಂಗ್ ಅನ್ನು ಬಳಸಬಹುದು. ಇದು ರಿಯಾಕ್ಟ್ಗೆ ಬಳಕೆದಾರರ ಇನ್ಪುಟ್ಗೆ ಆದ್ಯತೆ ನೀಡಲು ಮತ್ತು ಯುಐ ಪ್ರತಿಕ್ರಿಯಿಸುವುದನ್ನು ನಿಲ್ಲಿಸುವುದನ್ನು ತಡೆಯಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ.
ಇಲ್ಲಿ ಒಂದು ಸರಳೀಕೃತ ಉದಾಹರಣೆ ಇದೆ:
import React, { useState, useCallback } from 'react';
function SearchBar() {
const [searchTerm, setSearchTerm] = useState('');
const debouncedSearch = useCallback(
debounce((value) => {
// ಇಲ್ಲಿ ಹುಡುಕಾಟದ ತರ್ಕವನ್ನು ನಿರ್ವಹಿಸಿ
console.log('Searching for:', value);
}, 300),
[]
);
const handleChange = (event) => {
const value = event.target.value;
setSearchTerm(value);
debouncedSearch(value);
};
return (
);
}
// ಡಿಬೌನ್ಸ್ ಫಂಕ್ಷನ್
function debounce(func, delay) {
let timeout;
return function(...args) {
const context = this;
clearTimeout(timeout);
timeout = setTimeout(() => func.apply(context, args), delay);
};
}
export default SearchBar;
ಈ ಉದಾಹರಣೆಯಲ್ಲಿ, debounce ಫಂಕ್ಷನ್ ಬಳಕೆದಾರರು 300 ಮಿಲಿಸೆಕೆಂಡ್ಗಳ ಕಾಲ ಟೈಪ್ ಮಾಡುವುದನ್ನು ನಿಲ್ಲಿಸುವವರೆಗೆ ಹುಡುಕಾಟದ ತರ್ಕದ ಕಾರ್ಯಗತಗೊಳಿಸುವಿಕೆಯನ್ನು ವಿಳಂಬಗೊಳಿಸುತ್ತದೆ. ಇದು ಹುಡುಕಾಟ ಫಲಿತಾಂಶಗಳು ಅಗತ್ಯವಿದ್ದಾಗ ಮಾತ್ರ ರೆಂಡರ್ ಆಗುವುದನ್ನು ಖಚಿತಪಡಿಸುತ್ತದೆ, ಅಪ್ಲಿಕೇಶನ್ನ ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಸುಧಾರಿಸುತ್ತದೆ.
2. ಚಿತ್ರಗಳನ್ನು ಲೇಜಿ ಲೋಡ್ ಮಾಡುವುದು
ದೊಡ್ಡ ಚಿತ್ರಗಳನ್ನು ಲೋಡ್ ಮಾಡುವುದು ವೆಬ್ ಪುಟದ ಆರಂಭಿಕ ಲೋಡ್ ಸಮಯದ ಮೇಲೆ ಗಮನಾರ್ಹವಾಗಿ ಪರಿಣಾಮ ಬೀರಬಹುದು. ಕಾಂಕರೆಂಟ್ ರೆಂಡರಿಂಗ್ನೊಂದಿಗೆ, ಚಿತ್ರಗಳು ವೀಕ್ಷಣೆ ಪೋರ್ಟ್ನಲ್ಲಿ ಗೋಚರಿಸುವವರೆಗೆ ಅವುಗಳ ಲೋಡಿಂಗ್ ಅನ್ನು ಮುಂದೂಡಲು ನಾವು ಲೇಜಿ ಲೋಡಿಂಗ್ ಅನ್ನು ಬಳಸಬಹುದು.
ಈ ತಂತ್ರವು ಅಪ್ಲಿಕೇಶನ್ನ ಗ್ರಹಿಸಿದ ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಗಮನಾರ್ಹವಾಗಿ ಸುಧಾರಿಸಬಹುದು, ಏಕೆಂದರೆ ಬಳಕೆದಾರರು ಪುಟದೊಂದಿಗೆ ಸಂವಹನ ನಡೆಸಲು ಪ್ರಾರಂಭಿಸುವ ಮೊದಲು ಎಲ್ಲಾ ಚಿತ್ರಗಳು ಲೋಡ್ ಆಗುವವರೆಗೆ ಕಾಯಬೇಕಾಗಿಲ್ಲ.
react-lazyload ಲೈಬ್ರರಿಯನ್ನು ಬಳಸಿಕೊಂಡು ಒಂದು ಸರಳೀಕೃತ ಉದಾಹರಣೆ ಇಲ್ಲಿದೆ:
import React from 'react';
import LazyLoad from 'react-lazyload';
function ImageComponent({ src, alt }) {
return (
Loading...}>
);
}
export default ImageComponent;
ಈ ಉದಾಹರಣೆಯಲ್ಲಿ, LazyLoad ಕಾಂಪೊನೆಂಟ್ ಚಿತ್ರವು ವೀಕ್ಷಣೆ ಪೋರ್ಟ್ನಲ್ಲಿ ಗೋಚರಿಸುವವರೆಗೆ ಅದರ ಲೋಡಿಂಗ್ ಅನ್ನು ವಿಳಂಬಗೊಳಿಸುತ್ತದೆ. placeholder ಪ್ರಾಪ್ ಚಿತ್ರವು ಲೋಡ್ ಆಗುತ್ತಿರುವಾಗ ಲೋಡಿಂಗ್ ಸೂಚಕವನ್ನು ಪ್ರದರ್ಶಿಸಲು ನಮಗೆ ಅನುಮತಿಸುತ್ತದೆ.
3. ಡೇಟಾ ಫೆಚಿಂಗ್ಗಾಗಿ ಸಸ್ಪೆನ್ಸ್
ರಿಯಾಕ್ಟ್ ಸಸ್ಪೆನ್ಸ್ ಡೇಟಾ ಲೋಡ್ ಆಗಲು ಕಾಯುತ್ತಿರುವಾಗ ಕಾಂಪೊನೆಂಟ್ನ ರೆಂಡರಿಂಗ್ ಅನ್ನು "ಸಸ್ಪೆಂಡ್" ಮಾಡಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ. ಇದು ಡೇಟಾ ಫೆಚಿಂಗ್ ಸನ್ನಿವೇಶಗಳಿಗೆ ವಿಶೇಷವಾಗಿ ಉಪಯುಕ್ತವಾಗಿದೆ, ಅಲ್ಲಿ ನೀವು API ನಿಂದ ಡೇಟಾಕ್ಕಾಗಿ ಕಾಯುತ್ತಿರುವಾಗ ಲೋಡಿಂಗ್ ಸೂಚಕವನ್ನು ಪ್ರದರ್ಶಿಸಲು ಬಯಸುತ್ತೀರಿ.
ಸಸ್ಪೆನ್ಸ್ ಕಾಂಕರೆಂಟ್ ರೆಂಡರಿಂಗ್ನೊಂದಿಗೆ ಮನಬಂದಂತೆ ಸಂಯೋಜನೆಗೊಳ್ಳುತ್ತದೆ, ರಿಯಾಕ್ಟ್ಗೆ ಡೇಟಾದ ಲೋಡಿಂಗ್ಗೆ ಆದ್ಯತೆ ನೀಡಲು ಮತ್ತು ಯುಐ ಪ್ರತಿಕ್ರಿಯಿಸುವುದನ್ನು ನಿಲ್ಲಿಸುವುದನ್ನು ತಡೆಯಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ.
ಇಲ್ಲಿ ಒಂದು ಸರಳೀಕೃತ ಉದಾಹರಣೆ ಇದೆ:
import React, { Suspense } from 'react';
// ಪ್ರಾಮಿಸ್ ಅನ್ನು ಹಿಂತಿರುಗಿಸುವ ಒಂದು ನಕಲಿ ಡೇಟಾ ಫೆಚಿಂಗ್ ಫಂಕ್ಷನ್
const fetchData = () => {
return new Promise(resolve => {
setTimeout(() => {
resolve({ data: 'Data loaded!' });
}, 2000);
});
};
// ಸಸ್ಪೆನ್ಸ್ ಬಳಸುವ ರಿಯಾಕ್ಟ್ ಕಾಂಪೊನೆಂಟ್
function MyComponent() {
const resource = fetchData();
return (
Loading... ಈ ಉದಾಹರಣೆಯಲ್ಲಿ, MyComponent ಡೇಟಾ ಫೆಚ್ ಆಗುತ್ತಿರುವಾಗ ಲೋಡಿಂಗ್ ಸೂಚಕವನ್ನು ಪ್ರದರ್ಶಿಸಲು Suspense ಕಾಂಪೊನೆಂಟ್ ಅನ್ನು ಬಳಸುತ್ತದೆ. DataDisplay ಕಾಂಪೊನೆಂಟ್ resource ಆಬ್ಜೆಕ್ಟ್ನಿಂದ ಡೇಟಾವನ್ನು ಬಳಸುತ್ತದೆ. ಡೇಟಾ ಲಭ್ಯವಾದಾಗ, Suspense ಕಾಂಪೊನೆಂಟ್ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಲೋಡಿಂಗ್ ಸೂಚಕವನ್ನು DataDisplay ಕಾಂಪೊನೆಂಟ್ನೊಂದಿಗೆ ಬದಲಾಯಿಸುತ್ತದೆ.
ಜಾಗತಿಕ ಅಪ್ಲಿಕೇಶನ್ಗಳಿಗೆ ಪ್ರಯೋಜನಗಳು
ರಿಯಾಕ್ಟ್ ಕಾಂಕರೆಂಟ್ ರೆಂಡರಿಂಗ್ನ ಪ್ರಯೋಜನಗಳು ಎಲ್ಲಾ ಅಪ್ಲಿಕೇಶನ್ಗಳಿಗೆ ವಿಸ್ತರಿಸುತ್ತವೆ, ಆದರೆ ಜಾಗತಿಕ ಪ್ರೇಕ್ಷಕರನ್ನು ಗುರಿಯಾಗಿಸಿಕೊಂಡ ಅಪ್ಲಿಕೇಶನ್ಗಳಿಗೆ ವಿಶೇಷವಾಗಿ ಪರಿಣಾಮಕಾರಿಯಾಗಿವೆ. ಏಕೆ ಎಂಬುದು ಇಲ್ಲಿದೆ:
- ವಿಭಿನ್ನ ನೆಟ್ವರ್ಕ್ ಪರಿಸ್ಥಿತಿಗಳು: ಪ್ರಪಂಚದ ವಿವಿಧ ಭಾಗಗಳಲ್ಲಿನ ಬಳಕೆದಾರರು ವಿಭಿನ್ನ ನೆಟ್ವರ್ಕ್ ವೇಗ ಮತ್ತು ವಿಶ್ವಾಸಾರ್ಹತೆಯನ್ನು ಅನುಭವಿಸುತ್ತಾರೆ. ಕಾಂಕರೆಂಟ್ ರೆಂಡರಿಂಗ್ ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್ಗೆ ನಿಧಾನ ಅಥವಾ ವಿಶ್ವಾಸಾರ್ಹವಲ್ಲದ ನೆಟ್ವರ್ಕ್ ಸಂಪರ್ಕಗಳನ್ನು ಆಕರ್ಷಕವಾಗಿ ನಿರ್ವಹಿಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ, ನಿರ್ಣಾಯಕ ಅಪ್ಡೇಟ್ಗಳಿಗೆ ಆದ್ಯತೆ ನೀಡುವ ಮೂಲಕ ಮತ್ತು ಯುಐ ಪ್ರತಿಕ್ರಿಯಿಸುವುದನ್ನು ನಿಲ್ಲಿಸುವುದನ್ನು ತಡೆಯುವ ಮೂಲಕ. ಉದಾಹರಣೆಗೆ, ಸೀಮಿತ ಬ್ಯಾಂಡ್ವಿಡ್ತ್ ಇರುವ ಪ್ರದೇಶದಲ್ಲಿನ ಬಳಕೆದಾರರು ಕಡಿಮೆ ನಿರ್ಣಾಯಕ ಡೇಟಾ ಹಿನ್ನೆಲೆಯಲ್ಲಿ ಲೋಡ್ ಆಗುತ್ತಿರುವಾಗಲೂ ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್ನ ಪ್ರಮುಖ ವೈಶಿಷ್ಟ್ಯಗಳೊಂದಿಗೆ ಸಂವಹನ ನಡೆಸಬಹುದು.
- ವೈವಿಧ್ಯಮಯ ಸಾಧನ ಸಾಮರ್ಥ್ಯಗಳು: ಬಳಕೆದಾರರು ಉನ್ನತ-ಮಟ್ಟದ ಡೆಸ್ಕ್ಟಾಪ್ಗಳಿಂದ ಕಡಿಮೆ-ಶಕ್ತಿಯ ಮೊಬೈಲ್ ಫೋನ್ಗಳವರೆಗೆ ವ್ಯಾಪಕ ಶ್ರೇಣಿಯ ಸಾಧನಗಳಲ್ಲಿ ವೆಬ್ ಅಪ್ಲಿಕೇಶನ್ಗಳನ್ನು ಪ್ರವೇಶಿಸುತ್ತಾರೆ. ಕಾಂಕರೆಂಟ್ ರೆಂಡರಿಂಗ್ ರೆಂಡರಿಂಗ್ ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಅತ್ಯುತ್ತಮವಾಗಿಸುವ ಮೂಲಕ ಮತ್ತು ಮುಖ್ಯ ಥ್ರೆಡ್ನ ಮೇಲಿನ ಹೊರೆಯನ್ನು ಕಡಿಮೆ ಮಾಡುವ ಮೂಲಕ ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್ ಎಲ್ಲಾ ಸಾಧನಗಳಲ್ಲಿ ಉತ್ತಮವಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುವುದನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ. ಹಳೆಯ ಮತ್ತು ಕಡಿಮೆ ಶಕ್ತಿಯುತ ಸಾಧನಗಳು ಹೆಚ್ಚು ಪ್ರಚಲಿತದಲ್ಲಿರುವ ಅಭಿವೃದ್ಧಿಶೀಲ ರಾಷ್ಟ್ರಗಳಲ್ಲಿ ಇದು ವಿಶೇಷವಾಗಿ ನಿರ್ಣಾಯಕವಾಗಿದೆ.
- ಅಂತಾರಾಷ್ಟ್ರೀಕರಣ ಮತ್ತು ಸ್ಥಳೀಕರಣ: ಬಹು ಭಾಷೆಗಳು ಮತ್ತು ಸ್ಥಳಗಳನ್ನು ಬೆಂಬಲಿಸುವ ಅಪ್ಲಿಕೇಶನ್ಗಳು ಸಾಮಾನ್ಯವಾಗಿ ಹೆಚ್ಚು ಸಂಕೀರ್ಣವಾದ ಕಾಂಪೊನೆಂಟ್ ಟ್ರೀಗಳನ್ನು ಮತ್ತು ರೆಂಡರ್ ಮಾಡಲು ಹೆಚ್ಚು ಡೇಟಾವನ್ನು ಹೊಂದಿರುತ್ತವೆ. ಕಾಂಕರೆಂಟ್ ರೆಂಡರಿಂಗ್ ರೆಂಡರಿಂಗ್ ಕಾರ್ಯಗಳನ್ನು ಸಣ್ಣ ಕೆಲಸದ ಘಟಕಗಳಾಗಿ ವಿಭಜಿಸುವ ಮೂಲಕ ಮತ್ತು ಅವುಗಳ ಪ್ರಾಮುಖ್ಯತೆಯ ಆಧಾರದ ಮೇಲೆ ಅಪ್ಡೇಟ್ಗಳಿಗೆ ಆದ್ಯತೆ ನೀಡುವ ಮೂಲಕ ಈ ಅಪ್ಲಿಕೇಶನ್ಗಳ ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಸುಧಾರಿಸಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ. ಪ್ರಸ್ತುತ ಆಯ್ಕೆಮಾಡಿದ ಸ್ಥಳಕ್ಕೆ ಸಂಬಂಧಿಸಿದ ಕಾಂಪೊನೆಂಟ್ಗಳ ರೆಂಡರಿಂಗ್ಗೆ ಆದ್ಯತೆ ನೀಡಬಹುದು, ಬಳಕೆದಾರರ ಸ್ಥಳವನ್ನು ಲೆಕ್ಕಿಸದೆ ಉತ್ತಮ ಬಳಕೆದಾರ ಅನುಭವವನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಬಹುದು.
- ಸುಧಾರಿತ ಪ್ರವೇಶಸಾಧ್ಯತೆ: ಸ್ಪಂದನಶೀಲ ಮತ್ತು ಕಾರ್ಯಕ್ಷಮತೆಯುಳ್ಳ ಅಪ್ಲಿಕೇಶನ್ ಅಂಗವಿಕಲ ಬಳಕೆದಾರರಿಗೆ ಹೆಚ್ಚು ಪ್ರವೇಶಿಸಬಹುದಾಗಿದೆ. ಕಾಂಕರೆಂಟ್ ರೆಂಡರಿಂಗ್ ಯುಐ ಪ್ರತಿಕ್ರಿಯಿಸುವುದನ್ನು ನಿಲ್ಲಿಸುವುದನ್ನು ತಡೆಯುವ ಮೂಲಕ ಮತ್ತು ಸಹಾಯಕ ತಂತ್ರಜ್ಞಾನಗಳು ಅಪ್ಲಿಕೇಶನ್ನೊಂದಿಗೆ ಸರಿಯಾಗಿ ಸಂವಹನ ನಡೆಸುವುದನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳುವ ಮೂಲಕ ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್ನ ಪ್ರವೇಶಸಾಧ್ಯತೆಯನ್ನು ಸುಧಾರಿಸಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, ಸ್ಕ್ರೀನ್ ರೀಡರ್ಗಳು ಸುಗಮವಾಗಿ ರೆಂಡರ್ ಆಗುವ ಅಪ್ಲಿಕೇಶನ್ನ ವಿಷಯವನ್ನು ಹೆಚ್ಚು ಸುಲಭವಾಗಿ ನ್ಯಾವಿಗೇಟ್ ಮಾಡಬಹುದು ಮತ್ತು ಅರ್ಥೈಸಿಕೊಳ್ಳಬಹುದು.
ಕ್ರಿಯಾತ್ಮಕ ಒಳನೋಟಗಳು ಮತ್ತು ಉತ್ತಮ ಅಭ್ಯಾಸಗಳು
ರಿಯಾಕ್ಟ್ ಕಾಂಕರೆಂಟ್ ರೆಂಡರಿಂಗ್ ಅನ್ನು ಪರಿಣಾಮಕಾರಿಯಾಗಿ ಬಳಸಿಕೊಳ್ಳಲು, ಈ ಕೆಳಗಿನ ಉತ್ತಮ ಅಭ್ಯಾಸಗಳನ್ನು ಪರಿಗಣಿಸಿ:
- ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಪ್ರೊಫೈಲ್ ಮಾಡಿ: ಕಾರ್ಯಕ್ಷಮತೆಯ ಅಡಚಣೆಗಳನ್ನು ಮತ್ತು ಕಾಂಕರೆಂಟ್ ರೆಂಡರಿಂಗ್ ಹೆಚ್ಚು ಪ್ರಯೋಜನವನ್ನು ನೀಡಬಹುದಾದ ಪ್ರದೇಶಗಳನ್ನು ಗುರುತಿಸಲು ರಿಯಾಕ್ಟ್ನ ಪ್ರೊಫೈಲರ್ ಉಪಕರಣವನ್ನು ಬಳಸಿ. ಪ್ರೊಫೈಲರ್ ನಿಮ್ಮ ಕಾಂಪೊನೆಂಟ್ಗಳ ರೆಂಡರಿಂಗ್ ಕಾರ್ಯಕ್ಷಮತೆಯ ಬಗ್ಗೆ ಮೌಲ್ಯಯುತ ಒಳನೋಟಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ, ಅತ್ಯಂತ ದುಬಾರಿ ಕಾರ್ಯಾಚರಣೆಗಳನ್ನು ಗುರುತಿಸಲು ಮತ್ತು ಅವುಗಳನ್ನು ಅತ್ಯುತ್ತಮವಾಗಿಸಲು ನಿಮಗೆ ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ.
React.lazyಮತ್ತುSuspenseಬಳಸಿ: ಈ ವೈಶಿಷ್ಟ್ಯಗಳು ಕಾಂಕರೆಂಟ್ ರೆಂಡರಿಂಗ್ನೊಂದಿಗೆ ಮನಬಂದಂತೆ ಕೆಲಸ ಮಾಡಲು ವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿದೆ ಮತ್ತು ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್ನ ಗ್ರಹಿಸಿದ ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಗಮನಾರ್ಹವಾಗಿ ಸುಧಾರಿಸಬಹುದು. ಕಾಂಪೊನೆಂಟ್ಗಳನ್ನು ಲೇಜಿ-ಲೋಡ್ ಮಾಡಲು ಮತ್ತು ಡೇಟಾ ಲೋಡ್ ಆಗಲು ಕಾಯುತ್ತಿರುವಾಗ ಲೋಡಿಂಗ್ ಸೂಚಕಗಳನ್ನು ಪ್ರದರ್ಶಿಸಲು ಅವುಗಳನ್ನು ಬಳಸಿ.- ಬಳಕೆದಾರರ ಇನ್ಪುಟ್ ಅನ್ನು ಡಿಬೌನ್ಸ್ ಮತ್ತು ಥ್ರೊಟಲ್ ಮಾಡಿ: ಬಳಕೆದಾರರ ಇನ್ಪುಟ್ ಈವೆಂಟ್ಗಳನ್ನು ಡಿಬೌನ್ಸ್ ಅಥವಾ ಥ್ರೊಟಲ್ ಮಾಡುವ ಮೂಲಕ ಅನಗತ್ಯ ಮರು-ರೆಂಡರ್ಗಳನ್ನು ತಪ್ಪಿಸಿ. ಇದು ಯುಐ ಪ್ರತಿಕ್ರಿಯಿಸುವುದನ್ನು ನಿಲ್ಲಿಸುವುದನ್ನು ತಡೆಯುತ್ತದೆ ಮತ್ತು ಒಟ್ಟಾರೆ ಬಳಕೆದಾರ ಅನುಭವವನ್ನು ಸುಧಾರಿಸುತ್ತದೆ.
- ಕಾಂಪೊನೆಂಟ್ ರೆಂಡರಿಂಗ್ ಅನ್ನು ಆಪ್ಟಿಮೈಜ್ ಮಾಡಿ: ನಿಮ್ಮ ಕಾಂಪೊನೆಂಟ್ಗಳು ಅಗತ್ಯವಿದ್ದಾಗ ಮಾತ್ರ ಮರು-ರೆಂಡರ್ ಆಗುತ್ತಿವೆಯೆ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ. ಕಾಂಪೊನೆಂಟ್ ರೆಂಡರಿಂಗ್ ಅನ್ನು ಮೆಮೊಯಿಜ್ ಮಾಡಲು ಮತ್ತು ಅನಗತ್ಯ ಅಪ್ಡೇಟ್ಗಳನ್ನು ತಡೆಯಲು
React.memoಅಥವಾuseMemoಬಳಸಿ. - ದೀರ್ಘ-ಚಾಲನೆಯ ಸಿಂಕ್ರೋನಸ್ ಕಾರ್ಯಗಳನ್ನು ತಪ್ಪಿಸಿ: ಮುಖ್ಯ ಥ್ರೆಡ್ ಅನ್ನು ನಿರ್ಬಂಧಿಸುವುದನ್ನು ತಡೆಯಲು ದೀರ್ಘ-ಚಾಲನೆಯ ಸಿಂಕ್ರೋನಸ್ ಕಾರ್ಯಗಳನ್ನು ಹಿನ್ನೆಲೆ ಥ್ರೆಡ್ಗಳು ಅಥವಾ ವೆಬ್ ವರ್ಕರ್ಗಳಿಗೆ ಸರಿಸಿ.
- ಅಸಿಂಕ್ರೋನಸ್ ಡೇಟಾ ಫೆಚಿಂಗ್ ಅನ್ನು ಅಳವಡಿಸಿಕೊಳ್ಳಿ: ಹಿನ್ನೆಲೆಯಲ್ಲಿ ಡೇಟಾವನ್ನು ಲೋಡ್ ಮಾಡಲು ಮತ್ತು ಯುಐ ಪ್ರತಿಕ್ರಿಯಿಸುವುದನ್ನು ನಿಲ್ಲಿಸುವುದನ್ನು ತಡೆಯಲು ಅಸಿಂಕ್ರೋನಸ್ ಡೇಟಾ ಫೆಚಿಂಗ್ ತಂತ್ರಗಳನ್ನು ಬಳಸಿ.
- ವಿವಿಧ ಸಾಧನಗಳು ಮತ್ತು ನೆಟ್ವರ್ಕ್ ಪರಿಸ್ಥಿತಿಗಳಲ್ಲಿ ಪರೀಕ್ಷಿಸಿ: ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್ ಎಲ್ಲಾ ಬಳಕೆದಾರರಿಗೆ ಉತ್ತಮವಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು ಅದನ್ನು ವಿವಿಧ ಸಾಧನಗಳು ಮತ್ತು ನೆಟ್ವರ್ಕ್ ಪರಿಸ್ಥಿತಿಗಳಲ್ಲಿ ಸಂಪೂರ್ಣವಾಗಿ ಪರೀಕ್ಷಿಸಿ. ವಿಭಿನ್ನ ನೆಟ್ವರ್ಕ್ ವೇಗ ಮತ್ತು ಸಾಧನ ಸಾಮರ್ಥ್ಯಗಳನ್ನು ಅನುಕರಿಸಲು ಬ್ರೌಸರ್ ಡೆವಲಪರ್ ಉಪಕರಣಗಳನ್ನು ಬಳಸಿ.
- ಕೋಡ್ ಸ್ಪ್ಲಿಟಿಂಗ್ಗಾಗಿ ಸಸ್ಪೆನ್ಸ್ ಅನ್ನು ಸಂಯೋಜಿಸುವಾಗ, ವಿಶೇಷವಾಗಿ ರೂಟ್ ಪರಿವರ್ತನೆಗಳನ್ನು ಸಮರ್ಥವಾಗಿ ನಿರ್ವಹಿಸಲು ಟ್ಯಾನ್ಸ್ಟಾಕ್ ರೂಟರ್ನಂತಹ ಲೈಬ್ರರಿಯನ್ನು ಬಳಸುವುದನ್ನು ಪರಿಗಣಿಸಿ.
ತೀರ್ಮಾನ
ಫೈಬರ್ ಆರ್ಕಿಟೆಕ್ಚರ್ ಮತ್ತು ವರ್ಕ್ ಲೂಪ್ನಿಂದ ಚಾಲಿತವಾದ ರಿಯಾಕ್ಟ್ ಕಾಂಕರೆಂಟ್ ರೆಂಡರಿಂಗ್, ಫ್ರಂಟ್-ಎಂಡ್ ಡೆವಲಪ್ಮೆಂಟ್ನಲ್ಲಿ ಒಂದು ಮಹತ್ವದ ಪ್ರಗತಿಯನ್ನು ಪ್ರತಿನಿಧಿಸುತ್ತದೆ. ತಡೆಹಿಡಿಯಬಹುದಾದ ಮತ್ತು ಹಂತಹಂತವಾದ ರೆಂಡರಿಂಗ್, ಆದ್ಯತೆ, ಮತ್ತು ಸುಧಾರಿತ ದೋಷ ನಿರ್ವಹಣೆಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುವ ಮೂಲಕ, ಕಾಂಕರೆಂಟ್ ರೆಂಡರಿಂಗ್ ಜಾಗತಿಕ ಅಪ್ಲಿಕೇಶನ್ಗಳಿಗಾಗಿ ಗಮನಾರ್ಹ ಕಾರ್ಯಕ್ಷಮತೆಯ ಸುಧಾರಣೆಗಳನ್ನು ಅನ್ಲಾಕ್ ಮಾಡುತ್ತದೆ ಮತ್ತು ಹೆಚ್ಚು ಸ್ಪಂದಿಸುವ ಬಳಕೆದಾರ ಅನುಭವಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ. ಕಾಂಕರೆಂಟ್ ರೆಂಡರಿಂಗ್ನ ಮೂಲ ಪರಿಕಲ್ಪನೆಗಳನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವ ಮೂಲಕ ಮತ್ತು ಈ ಲೇಖನದಲ್ಲಿ ವಿವರಿಸಿದ ಉತ್ತಮ ಅಭ್ಯಾಸಗಳನ್ನು ಅನುಸರಿಸುವ ಮೂಲಕ, ನೀವು ವಿಶ್ವಾದ್ಯಂತ ಬಳಕೆದಾರರನ್ನು ಸಂತೋಷಪಡಿಸುವ ಉನ್ನತ-ಕಾರ್ಯಕ್ಷಮತೆಯ, ಬಳಕೆದಾರ-ಸ್ನೇಹಿ ರಿಯಾಕ್ಟ್ ಅಪ್ಲಿಕೇಶನ್ಗಳನ್ನು ನಿರ್ಮಿಸಬಹುದು. ರಿಯಾಕ್ಟ್ ವಿಕಸನಗೊಳ್ಳುತ್ತಾ ಸಾಗಿದಂತೆ, ಕಾಂಕರೆಂಟ್ ರೆಂಡರಿಂಗ್ ನಿಸ್ಸಂದೇಹವಾಗಿ ವೆಬ್ ಡೆವಲಪ್ಮೆಂಟ್ನ ಭವಿಷ್ಯವನ್ನು ರೂಪಿಸುವಲ್ಲಿ ಹೆಚ್ಚು ಪ್ರಮುಖ ಪಾತ್ರವನ್ನು ವಹಿಸುತ್ತದೆ.