CSS-in-JS ಲೈಬ್ರರಿಗಳನ್ನು ಆಪ್ಟಿಮೈಸ್ ಮಾಡಲು ರಿಯಾಕ್ಟ್ನ useInsertionEffect ಹುಕ್ ಅನ್ನು ಅನ್ವೇಷಿಸಿ. ಇದು ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಹೇಗೆ ಹೆಚ್ಚಿಸುತ್ತದೆ, ಲೇಔಟ್ ಥ್ರಾಶಿಂಗ್ ಅನ್ನು ಕಡಿಮೆ ಮಾಡುತ್ತದೆ ಮತ್ತು ಸ್ಥಿರವಾದ ಸ್ಟೈಲಿಂಗ್ ಅನ್ನು ಖಚಿತಪಡಿಸುತ್ತದೆ ಎಂಬುದನ್ನು ತಿಳಿಯಿರಿ.
ರಿಯಾಕ್ಟ್ useInsertionEffect: CSS-in-JS ಆಪ್ಟಿಮೈಸೇಶನ್ನಲ್ಲಿ ಕ್ರಾಂತಿಕಾರಿ ಬದಲಾವಣೆ
ರಿಯಾಕ್ಟ್ ಪರಿಸರ ವ್ಯವಸ್ಥೆಯು ನಿರಂತರವಾಗಿ ವಿಕಸನಗೊಳ್ಳುತ್ತಿದೆ, ಕಾರ್ಯಕ್ಷಮತೆಯ ಅಡಚಣೆಗಳನ್ನು ನಿವಾರಿಸಲು ಮತ್ತು ಡೆವಲಪರ್ ಅನುಭವವನ್ನು ಹೆಚ್ಚಿಸಲು ಹೊಸ ವೈಶಿಷ್ಟ್ಯಗಳು ಮತ್ತು APIಗಳು ಹೊರಹೊಮ್ಮುತ್ತಿವೆ. ಅಂತಹ ಒಂದು ಸೇರ್ಪಡೆಯೆಂದರೆ useInsertionEffect
ಹುಕ್, ಇದನ್ನು ರಿಯಾಕ್ಟ್ 18 ರಲ್ಲಿ ಪರಿಚಯಿಸಲಾಗಿದೆ. ಈ ಹುಕ್ CSS-in-JS ಲೈಬ್ರರಿಗಳನ್ನು ಆಪ್ಟಿಮೈಜ್ ಮಾಡಲು ಪ್ರಬಲವಾದ ಯಾಂತ್ರಿಕತೆಯನ್ನು ಒದಗಿಸುತ್ತದೆ, ಇದು ವಿಶೇಷವಾಗಿ ಸಂಕೀರ್ಣ ಅಪ್ಲಿಕೇಶನ್ಗಳಲ್ಲಿ ಗಮನಾರ್ಹ ಕಾರ್ಯಕ್ಷಮತೆಯ ಸುಧಾರಣೆಗಳಿಗೆ ಕಾರಣವಾಗುತ್ತದೆ.
CSS-in-JS ಎಂದರೇನು?
useInsertionEffect
ಬಗ್ಗೆ ತಿಳಿಯುವ ಮೊದಲು, CSS-in-JS ಅನ್ನು ಸಂಕ್ಷಿಪ್ತವಾಗಿ ನೋಡೋಣ. ಇದು ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಕಾಂಪೊನೆಂಟ್ಗಳಲ್ಲಿ CSS ಸ್ಟೈಲ್ಗಳನ್ನು ಬರೆಯುವ ಮತ್ತು ನಿರ್ವಹಿಸುವ ಒಂದು ತಂತ್ರವಾಗಿದೆ. ಸಾಂಪ್ರದಾಯಿಕ CSS ಸ್ಟೈಲ್ಶೀಟ್ಗಳ ಬದಲಿಗೆ, CSS-in-JS ಲೈಬ್ರರಿಗಳು ಡೆವಲಪರ್ಗಳಿಗೆ ತಮ್ಮ ರಿಯಾಕ್ಟ್ ಕೋಡ್ನಲ್ಲಿ ನೇರವಾಗಿ ಸ್ಟೈಲ್ಗಳನ್ನು ವ್ಯಾಖ್ಯಾನಿಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತವೆ. ಜನಪ್ರಿಯ CSS-in-JS ಲೈಬ್ರರಿಗಳು ಇವುಗಳನ್ನು ಒಳಗೊಂಡಿವೆ:
- Styled-components
- Emotion
- Linaria
- Aphrodite
CSS-in-JS ಹಲವಾರು ಪ್ರಯೋಜನಗಳನ್ನು ನೀಡುತ್ತದೆ:
- ಕಾಂಪೊನೆಂಟ್-ಹಂತದ ಸ್ಕೋಪಿಂಗ್: ಸ್ಟೈಲ್ಗಳು ಕಾಂಪೊನೆಂಟ್ಗಳಲ್ಲಿ ಅಡಕವಾಗಿರುತ್ತವೆ, ಇದು ಹೆಸರಿಸುವ ಸಂಘರ್ಷಗಳನ್ನು ತಡೆಯುತ್ತದೆ ಮತ್ತು ನಿರ್ವಹಣೆಯನ್ನು ಸುಧಾರಿಸುತ್ತದೆ.
- ಡೈನಾಮಿಕ್ ಸ್ಟೈಲಿಂಗ್: ಕಾಂಪೊನೆಂಟ್ ಪ್ರಾಪ್ಸ್ ಅಥವಾ ಅಪ್ಲಿಕೇಶನ್ ಸ್ಥಿತಿಯನ್ನು ಆಧರಿಸಿ ಸ್ಟೈಲ್ಗಳನ್ನು ಡೈನಾಮಿಕ್ ಆಗಿ ಹೊಂದಿಸಬಹುದು.
- ಕೊಲೊಕೇಶನ್: ಸ್ಟೈಲ್ಗಳು ತಾವು ಸ್ಟೈಲ್ ಮಾಡುವ ಕಾಂಪೊನೆಂಟ್ಗಳ ಜೊತೆಯಲ್ಲೇ ಇರುತ್ತವೆ, ಇದು ಕೋಡ್ ಸಂಘಟನೆಯನ್ನು ಸುಧಾರಿಸುತ್ತದೆ.
- ಡೆಡ್ ಕೋಡ್ ಎಲಿಮಿನೇಷನ್: ಬಳಕೆಯಾಗದ ಸ್ಟೈಲ್ಗಳನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ತೆಗೆದುಹಾಕಬಹುದು, ಇದು CSS ಬಂಡಲ್ ಗಾತ್ರವನ್ನು ಕಡಿಮೆ ಮಾಡುತ್ತದೆ.
ಆದಾಗ್ಯೂ, CSS-in-JS ಕಾರ್ಯಕ್ಷಮತೆಯ ಸವಾಲುಗಳನ್ನು ಸಹ ಪರಿಚಯಿಸುತ್ತದೆ. ರೆಂಡರಿಂಗ್ ಸಮಯದಲ್ಲಿ CSS ಅನ್ನು ಡೈನಾಮಿಕ್ ಆಗಿ ಇಂಜೆಕ್ಟ್ ಮಾಡುವುದು ಲೇಔಟ್ ಥ್ರಾಶಿಂಗ್ಗೆ ಕಾರಣವಾಗಬಹುದು, ಅಲ್ಲಿ ಸ್ಟೈಲ್ ಬದಲಾವಣೆಗಳಿಂದಾಗಿ ಬ್ರೌಸರ್ ಪದೇ ಪದೇ ಲೇಔಟ್ ಅನ್ನು ಮರುಲೆಕ್ಕಾಚಾರ ಮಾಡುತ್ತದೆ. ಇದು ಜಂಕಿ ಆನಿಮೇಷನ್ಗಳು ಮತ್ತು ಕಳಪೆ ಬಳಕೆದಾರರ ಅನುಭವಕ್ಕೆ ಕಾರಣವಾಗಬಹುದು, ವಿಶೇಷವಾಗಿ ಕಡಿಮೆ-ಶಕ್ತಿಯ ಸಾಧನಗಳಲ್ಲಿ ಅಥವಾ ಆಳವಾಗಿ ನೆಸ್ಟೆಡ್ ಕಾಂಪೊನೆಂಟ್ ಟ್ರೀಗಳನ್ನು ಹೊಂದಿರುವ ಅಪ್ಲಿಕೇಶನ್ಗಳಲ್ಲಿ.
ಲೇಔಟ್ ಥ್ರಾಶಿಂಗ್ ಅನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು
ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಕೋಡ್ ಸ್ಟೈಲ್ ಬದಲಾವಣೆಯ ನಂತರ ಆದರೆ ಬ್ರೌಸರ್ ಲೇಔಟ್ ಅನ್ನು ಮರುಲೆಕ್ಕಾಚಾರ ಮಾಡಲು ಅವಕಾಶ ಸಿಗುವ ಮೊದಲು ಲೇಔಟ್ ಪ್ರಾಪರ್ಟಿಗಳನ್ನು (ಉದಾಹರಣೆಗೆ, offsetWidth
, offsetHeight
, scrollTop
) ಓದಿದಾಗ ಲೇಔಟ್ ಥ್ರಾಶಿಂಗ್ ಸಂಭವಿಸುತ್ತದೆ. ಇದು ಬ್ರೌಸರ್ ಅನ್ನು ಸಿಂಕ್ರೊನಸ್ ಆಗಿ ಲೇಔಟ್ ಅನ್ನು ಮರುಲೆಕ್ಕಾಚಾರ ಮಾಡಲು ಒತ್ತಾಯಿಸುತ್ತದೆ, ಇದು ಕಾರ್ಯಕ್ಷಮತೆಯ ಅಡಚಣೆಗೆ ಕಾರಣವಾಗುತ್ತದೆ. CSS-in-JS ನ ಸಂದರ್ಭದಲ್ಲಿ, ರೆಂಡರ್ ಹಂತದಲ್ಲಿ ಸ್ಟೈಲ್ಗಳನ್ನು DOM ಗೆ ಇಂಜೆಕ್ಟ್ ಮಾಡಿದಾಗ ಮತ್ತು ನಂತರದ ಲೆಕ್ಕಾಚಾರಗಳು ನವೀಕರಿಸಿದ ಲೇಔಟ್ ಅನ್ನು ಅವಲಂಬಿಸಿದಾಗ ಇದು ಹೆಚ್ಚಾಗಿ ಸಂಭವಿಸುತ್ತದೆ.
ಈ ಸರಳೀಕೃತ ಉದಾಹರಣೆಯನ್ನು ಪರಿಗಣಿಸಿ:
function MyComponent() {
const [width, setWidth] = React.useState(0);
const ref = React.useRef(null);
React.useEffect(() => {
// Inject CSS dynamically (e.g., using styled-components)
ref.current.style.width = '200px';
// Read layout property immediately after style change
setWidth(ref.current.offsetWidth);
}, []);
return <div ref={ref}>My Element</div>;
}
ಈ ಸನ್ನಿವೇಶದಲ್ಲಿ, width
ಸ್ಟೈಲ್ ಅನ್ನು ಸೆಟ್ ಮಾಡಿದ ತಕ್ಷಣ offsetWidth
ಅನ್ನು ಓದಲಾಗುತ್ತದೆ. ಇದು ಸಿಂಕ್ರೊನಸ್ ಲೇಔಟ್ ಲೆಕ್ಕಾಚಾರವನ್ನು ಪ್ರಚೋದಿಸುತ್ತದೆ, ಸಂಭಾವ್ಯವಾಗಿ ಲೇಔಟ್ ಥ್ರಾಶಿಂಗ್ಗೆ ಕಾರಣವಾಗುತ್ತದೆ.
useInsertionEffect
ಪರಿಚಯ
useInsertionEffect
ಎಂಬುದು CSS-in-JS ಲೈಬ್ರರಿಗಳಲ್ಲಿ ಡೈನಾಮಿಕ್ CSS ಇಂಜೆಕ್ಷನ್ಗೆ ಸಂಬಂಧಿಸಿದ ಕಾರ್ಯಕ್ಷಮತೆಯ ಸವಾಲುಗಳನ್ನು ನಿಭಾಯಿಸಲು ವಿನ್ಯಾಸಗೊಳಿಸಲಾದ ರಿಯಾಕ್ಟ್ ಹುಕ್ ಆಗಿದೆ. ಇದು ಬ್ರೌಸರ್ ಪರದೆಯನ್ನು ಪೇಂಟ್ ಮಾಡುವ ಮೊದಲು DOM ಗೆ CSS ನಿಯಮಗಳನ್ನು ಸೇರಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ, ಲೇಔಟ್ ಥ್ರಾಶಿಂಗ್ ಅನ್ನು ಕಡಿಮೆ ಮಾಡುತ್ತದೆ ಮತ್ತು ಸುಗಮವಾದ ರೆಂಡರಿಂಗ್ ಅನುಭವವನ್ನು ಖಚಿತಪಡಿಸುತ್ತದೆ.
useInsertionEffect
ಮತ್ತು ಇತರ ರಿಯಾಕ್ಟ್ ಹುಕ್ಸ್ಗಳಾದ useEffect
ಮತ್ತು useLayoutEffect
ನಡುವಿನ ಪ್ರಮುಖ ವ್ಯತ್ಯಾಸ ಇಲ್ಲಿದೆ:
useInsertionEffect
: DOM ಬದಲಾಗುವ ಮೊದಲು ಸಿಂಕ್ರೊನಸ್ ಆಗಿ ರನ್ ಆಗುತ್ತದೆ, ಬ್ರೌಸರ್ ಲೇಔಟ್ ಅನ್ನು ಲೆಕ್ಕಾಚಾರ ಮಾಡುವ ಮೊದಲು ಸ್ಟೈಲ್ಗಳನ್ನು ಇಂಜೆಕ್ಟ್ ಮಾಡಲು ನಿಮಗೆ ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ. ಇದಕ್ಕೆ DOM ಗೆ ಪ್ರವೇಶವಿರುವುದಿಲ್ಲ ಮತ್ತು CSS ನಿಯಮಗಳನ್ನು ಸೇರಿಸುವಂತಹ ಕಾರ್ಯಗಳಿಗೆ ಮಾತ್ರ ಬಳಸಬೇಕು.useLayoutEffect
: DOM ಬದಲಾದ ನಂತರ ಆದರೆ ಬ್ರೌಸರ್ ಪೇಂಟ್ ಮಾಡುವ ಮೊದಲು ಸಿಂಕ್ರೊನಸ್ ಆಗಿ ರನ್ ಆಗುತ್ತದೆ. ಇದಕ್ಕೆ DOM ಗೆ ಪ್ರವೇಶವಿದೆ ಮತ್ತು ಲೇಔಟ್ ಅನ್ನು ಅಳೆಯಲು ಮತ್ತು ಹೊಂದಾಣಿಕೆಗಳನ್ನು ಮಾಡಲು ಬಳಸಬಹುದು. ಆದಾಗ್ಯೂ, ಇದನ್ನು ಎಚ್ಚರಿಕೆಯಿಂದ ಬಳಸದಿದ್ದರೆ ಲೇಔಟ್ ಥ್ರಾಶಿಂಗ್ಗೆ ಕಾರಣವಾಗಬಹುದು.useEffect
: ಬ್ರೌಸರ್ ಪೇಂಟ್ ಮಾಡಿದ ನಂತರ ಅಸಿಂಕ್ರೊನಸ್ ಆಗಿ ರನ್ ಆಗುತ್ತದೆ. ತಕ್ಷಣದ DOM ಪ್ರವೇಶ ಅಥವಾ ಲೇಔಟ್ ಅಳತೆಗಳ ಅಗತ್ಯವಿಲ್ಲದ ಸೈಡ್ ಎಫೆಕ್ಟ್ಗಳಿಗೆ ಇದು ಸೂಕ್ತವಾಗಿದೆ.
useInsertionEffect
ಅನ್ನು ಬಳಸುವ ಮೂಲಕ, CSS-in-JS ಲೈಬ್ರರಿಗಳು ರೆಂಡರಿಂಗ್ ಪೈಪ್ಲೈನ್ನಲ್ಲಿ ಮುಂಚಿತವಾಗಿ ಸ್ಟೈಲ್ಗಳನ್ನು ಇಂಜೆಕ್ಟ್ ಮಾಡಬಹುದು, ಇದು ಬ್ರೌಸರ್ಗೆ ಲೇಔಟ್ ಲೆಕ್ಕಾಚಾರಗಳನ್ನು ಆಪ್ಟಿಮೈಜ್ ಮಾಡಲು ಮತ್ತು ಲೇಔಟ್ ಥ್ರಾಶಿಂಗ್ ಸಂಭವನೀಯತೆಯನ್ನು ಕಡಿಮೆ ಮಾಡಲು ಹೆಚ್ಚಿನ ಸಮಯವನ್ನು ನೀಡುತ್ತದೆ.
useInsertionEffect
ಅನ್ನು ಹೇಗೆ ಬಳಸುವುದು
useInsertionEffect
ಅನ್ನು ಸಾಮಾನ್ಯವಾಗಿ CSS-in-JS ಲೈಬ್ರರಿಗಳಲ್ಲಿ DOM ಗೆ CSS ನಿಯಮಗಳ ಸೇರ್ಪಡೆಯನ್ನು ನಿರ್ವಹಿಸಲು ಬಳಸಲಾಗುತ್ತದೆ. ನಿಮ್ಮ ಸ್ವಂತ CSS-in-JS ಪರಿಹಾರವನ್ನು ನೀವು ನಿರ್ಮಿಸದ ಹೊರತು ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್ ಕೋಡ್ನಲ್ಲಿ ನೀವು ಇದನ್ನು ನೇರವಾಗಿ ವಿರಳವಾಗಿ ಬಳಸುತ್ತೀರಿ.
CSS-in-JS ಲೈಬ್ರರಿಯು useInsertionEffect
ಅನ್ನು ಹೇಗೆ ಬಳಸಬಹುದು ಎಂಬುದಕ್ಕೆ ಒಂದು ಸರಳೀಕೃತ ಉದಾಹರಣೆ ಇಲ್ಲಿದೆ:
import * as React from 'react';
const styleSheet = new CSSStyleSheet();
document.adoptedStyleSheets = [...document.adoptedStyleSheets, styleSheet];
function insertCSS(rule) {
styleSheet.insertRule(rule, styleSheet.cssRules.length);
}
export function useMyCSS(css) {
React.useInsertionEffect(() => {
insertCSS(css);
}, [css]);
}
function MyComponent() {
useMyCSS('.my-class { color: blue; }');
return <div className="my-class">Hello, World!</div>;
}
ವಿವರಣೆ:
- ಹೊಸ
CSSStyleSheet
ಅನ್ನು ರಚಿಸಲಾಗಿದೆ. ಇದು CSS ನಿಯಮಗಳನ್ನು ನಿರ್ವಹಿಸಲು ಒಂದು ಉತ್ತಮ ಮಾರ್ಗವಾಗಿದೆ. - ಸ್ಟೈಲ್ಶೀಟ್ ಅನ್ನು ಡಾಕ್ಯುಮೆಂಟ್ನಿಂದ ಅಳವಡಿಸಿಕೊಳ್ಳಲಾಗುತ್ತದೆ, ಇದು ನಿಯಮಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ.
useMyCSS
ಕಸ್ಟಮ್ ಹುಕ್ ಇನ್ಪುಟ್ ಆಗಿ CSS ನಿಯಮವನ್ನು ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ.useInsertionEffect
ಒಳಗೆ,insertCSS
ಬಳಸಿ CSS ನಿಯಮವನ್ನು ಸ್ಟೈಲ್ಶೀಟ್ಗೆ ಸೇರಿಸಲಾಗುತ್ತದೆ.- ಹುಕ್
css
ನಿಯಮವನ್ನು ಅವಲಂಬಿಸಿರುತ್ತದೆ, ನಿಯಮ ಬದಲಾದಾಗ ಅದು ಮರು-ರನ್ ಆಗುವುದನ್ನು ಖಚಿತಪಡಿಸುತ್ತದೆ.
ಪ್ರಮುಖ ಪರಿಗಣನೆಗಳು:
useInsertionEffect
ಕ್ಲೈಂಟ್-ಸೈಡ್ನಲ್ಲಿ ಮಾತ್ರ ರನ್ ಆಗುತ್ತದೆ. ಇದು ಸರ್ವರ್-ಸೈಡ್ ರೆಂಡರಿಂಗ್ (SSR) ಸಮಯದಲ್ಲಿ ಕಾರ್ಯಗತಗೊಳ್ಳುವುದಿಲ್ಲ. ಆದ್ದರಿಂದ, ನಿಮ್ಮ CSS-in-JS ಲೈಬ್ರರಿಯು SSR ಅನ್ನು ಸೂಕ್ತವಾಗಿ ನಿಭಾಯಿಸುತ್ತದೆ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ, ಸಾಮಾನ್ಯವಾಗಿ ರೆಂಡರಿಂಗ್ ಸಮಯದಲ್ಲಿ ಉತ್ಪತ್ತಿಯಾದ CSS ಅನ್ನು ಸಂಗ್ರಹಿಸಿ ಅದನ್ನು HTML ಗೆ ಇಂಜೆಕ್ಟ್ ಮಾಡುವ ಮೂಲಕ.useInsertionEffect
ಗೆ DOM ಗೆ ಪ್ರವೇಶವಿಲ್ಲ. ಈ ಹುಕ್ ಒಳಗೆ DOM ಎಲಿಮೆಂಟ್ಗಳನ್ನು ಓದಲು ಅಥವಾ ಮ್ಯಾನಿಪ್ಯುಲೇಟ್ ಮಾಡಲು ಪ್ರಯತ್ನಿಸುವುದನ್ನು ತಪ್ಪಿಸಿ. ಕೇವಲ CSS ನಿಯಮಗಳನ್ನು ಸೇರಿಸುವುದರ ಮೇಲೆ ಗಮನಹರಿಸಿ.- ಕಾಂಪೊನೆಂಟ್ ಟ್ರೀ ಒಳಗೆ ಅನೇಕ
useInsertionEffect
ಕರೆಗಳ ಕಾರ್ಯಗತಗೊಳಿಸುವಿಕೆಯ ಕ್ರಮವು ಖಾತರಿಯಿಲ್ಲ. CSS ಸ್ಪೆಸಿಫಿಸಿಟಿ ಮತ್ತು ಸ್ಟೈಲ್ಗಳ ನಡುವಿನ ಸಂಭಾವ್ಯ ಸಂಘರ್ಷಗಳ ಬಗ್ಗೆ ಗಮನವಿರಲಿ. ಕ್ರಮವು ಮುಖ್ಯವಾಗಿದ್ದರೆ, CSS ಸೇರ್ಪಡೆಯನ್ನು ನಿರ್ವಹಿಸಲು ಹೆಚ್ಚು ನಿಯಂತ್ರಿತ ಯಾಂತ್ರಿಕತೆಯನ್ನು ಬಳಸುವುದನ್ನು ಪರಿಗಣಿಸಿ.
useInsertionEffect
ಬಳಸುವ ಪ್ರಯೋಜನಗಳು
useInsertionEffect
ನ ಪ್ರಾಥಮಿಕ ಪ್ರಯೋಜನವೆಂದರೆ ಸುಧಾರಿತ ಕಾರ್ಯಕ್ಷಮತೆ, ವಿಶೇಷವಾಗಿ CSS-in-JS ಅನ್ನು ಹೆಚ್ಚು ಅವಲಂಬಿಸಿರುವ ಅಪ್ಲಿಕೇಶನ್ಗಳಲ್ಲಿ. ರೆಂಡರಿಂಗ್ ಪೈಪ್ಲೈನ್ನಲ್ಲಿ ಮುಂಚಿತವಾಗಿ ಸ್ಟೈಲ್ಗಳನ್ನು ಇಂಜೆಕ್ಟ್ ಮಾಡುವ ಮೂಲಕ, ಇದು ಲೇಔಟ್ ಥ್ರಾಶಿಂಗ್ ಅನ್ನು ತಗ್ಗಿಸಲು ಮತ್ತು ಸುಗಮವಾದ ಬಳಕೆದಾರ ಅನುಭವವನ್ನು ಖಚಿತಪಡಿಸಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ.
ಪ್ರಮುಖ ಪ್ರಯೋಜನಗಳ ಸಾರಾಂಶ ಇಲ್ಲಿದೆ:
- ಕಡಿಮೆಯಾದ ಲೇಔಟ್ ಥ್ರಾಶಿಂಗ್: ಲೇಔಟ್ ಲೆಕ್ಕಾಚಾರಗಳ ಮೊದಲು ಸ್ಟೈಲ್ಗಳನ್ನು ಇಂಜೆಕ್ಟ್ ಮಾಡುವುದರಿಂದ ಸಿಂಕ್ರೊನಸ್ ಮರುಲೆಕ್ಕಾಚಾರಗಳನ್ನು ಕಡಿಮೆ ಮಾಡುತ್ತದೆ ಮತ್ತು ರೆಂಡರಿಂಗ್ ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಸುಧಾರಿಸುತ್ತದೆ.
- ಸುಗಮವಾದ ಆನಿಮೇಷನ್ಗಳು: ಲೇಔಟ್ ಥ್ರಾಶಿಂಗ್ ಅನ್ನು ತಡೆಯುವ ಮೂಲಕ,
useInsertionEffect
ಸುಗಮವಾದ ಆನಿಮೇಷನ್ಗಳು ಮತ್ತು ಪರಿವರ್ತನೆಗಳಿಗೆ ಕೊಡುಗೆ ನೀಡಬಹುದು. - ಸುಧಾರಿತ ಕಾರ್ಯಕ್ಷಮತೆ: ಒಟ್ಟಾರೆ ರೆಂಡರಿಂಗ್ ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಗಮನಾರ್ಹವಾಗಿ ಸುಧಾರಿಸಬಹುದು, ವಿಶೇಷವಾಗಿ ಆಳವಾಗಿ ನೆಸ್ಟೆಡ್ ಕಾಂಪೊನೆಂಟ್ ಟ್ರೀಗಳನ್ನು ಹೊಂದಿರುವ ಸಂಕೀರ್ಣ ಅಪ್ಲಿಕೇಶನ್ಗಳಲ್ಲಿ.
- ಸ್ಥಿರವಾದ ಸ್ಟೈಲಿಂಗ್: ವಿವಿಧ ಬ್ರೌಸರ್ಗಳು ಮತ್ತು ಸಾಧನಗಳಲ್ಲಿ ಸ್ಟೈಲ್ಗಳನ್ನು ಸ್ಥಿರವಾಗಿ ಅನ್ವಯಿಸಲಾಗುತ್ತದೆ ಎಂದು ಖಚಿತಪಡಿಸುತ್ತದೆ.
ನೈಜ-ಪ್ರಪಂಚದ ಉದಾಹರಣೆಗಳು
ಅಪ್ಲಿಕೇಶನ್ ಕೋಡ್ನಲ್ಲಿ ನೇರವಾಗಿ useInsertionEffect
ಅನ್ನು ಬಳಸುವುದು ಅಪರೂಪವಾಗಿದ್ದರೂ, CSS-in-JS ಲೈಬ್ರರಿ ಲೇಖಕರಿಗೆ ಇದು ನಿರ್ಣಾಯಕವಾಗಿದೆ. ಇದು ಪರಿಸರ ವ್ಯವಸ್ಥೆಯ ಮೇಲೆ ಹೇಗೆ ಪರಿಣಾಮ ಬೀರುತ್ತಿದೆ ಎಂಬುದನ್ನು ಅನ್ವೇಷಿಸೋಣ.
Styled-components
ಅತ್ಯಂತ ಜನಪ್ರಿಯ CSS-in-JS ಲೈಬ್ರರಿಗಳಲ್ಲಿ ಒಂದಾದ Styled-components, ಸ್ಟೈಲ್ ಇಂಜೆಕ್ಷನ್ ಅನ್ನು ಆಪ್ಟಿಮೈಜ್ ಮಾಡಲು ಆಂತರಿಕವಾಗಿ useInsertionEffect
ಅನ್ನು ಅಳವಡಿಸಿಕೊಂಡಿದೆ. ಈ ಬದಲಾವಣೆಯು styled-components ಬಳಸುವ ಅಪ್ಲಿಕೇಶನ್ಗಳಲ್ಲಿ, ವಿಶೇಷವಾಗಿ ಸಂಕೀರ್ಣ ಸ್ಟೈಲಿಂಗ್ ಅವಶ್ಯಕತೆಗಳನ್ನು ಹೊಂದಿರುವ ಅಪ್ಲಿಕೇಶನ್ಗಳಲ್ಲಿ ಗಮನಾರ್ಹ ಕಾರ್ಯಕ್ಷಮತೆಯ ಸುಧಾರಣೆಗಳಿಗೆ ಕಾರಣವಾಗಿದೆ.
Emotion
ಮತ್ತೊಂದು ವ್ಯಾಪಕವಾಗಿ ಬಳಸಲಾಗುವ CSS-in-JS ಲೈಬ್ರರಿಯಾದ Emotion, ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಹೆಚ್ಚಿಸಲು useInsertionEffect
ಅನ್ನು ಸಹ ಬಳಸಿಕೊಳ್ಳುತ್ತದೆ. ರೆಂಡರಿಂಗ್ ಪ್ರಕ್ರಿಯೆಯಲ್ಲಿ ಮುಂಚಿತವಾಗಿ ಸ್ಟೈಲ್ಗಳನ್ನು ಇಂಜೆಕ್ಟ್ ಮಾಡುವ ಮೂಲಕ, Emotion ಲೇಔಟ್ ಥ್ರಾಶಿಂಗ್ ಅನ್ನು ಕಡಿಮೆ ಮಾಡುತ್ತದೆ ಮತ್ತು ಒಟ್ಟಾರೆ ರೆಂಡರಿಂಗ್ ವೇಗವನ್ನು ಸುಧಾರಿಸುತ್ತದೆ.
ಇತರ ಲೈಬ್ರರಿಗಳು
ಇತರ CSS-in-JS ಲೈಬ್ರರಿಗಳು ಅದರ ಕಾರ್ಯಕ್ಷಮತೆಯ ಪ್ರಯೋಜನಗಳ ಲಾಭ ಪಡೆಯಲು useInsertionEffect
ಅನ್ನು ಸಕ್ರಿಯವಾಗಿ ಅನ್ವೇಷಿಸುತ್ತಿವೆ ಮತ್ತು ಅಳವಡಿಸಿಕೊಳ್ಳುತ್ತಿವೆ. ರಿಯಾಕ್ಟ್ ಪರಿಸರ ವ್ಯವಸ್ಥೆಯು ವಿಕಸನಗೊಂಡಂತೆ, ಹೆಚ್ಚಿನ ಲೈಬ್ರರಿಗಳು ಈ ಹುಕ್ ಅನ್ನು ತಮ್ಮ ಆಂತರಿಕ ಅನುಷ್ಠಾನಗಳಲ್ಲಿ ಅಳವಡಿಸಿಕೊಳ್ಳುವುದನ್ನು ನಾವು ನಿರೀಕ್ಷಿಸಬಹುದು.
useInsertionEffect
ಅನ್ನು ಯಾವಾಗ ಬಳಸಬೇಕು
ಮೊದಲೇ ಹೇಳಿದಂತೆ, ನೀವು ಸಾಮಾನ್ಯವಾಗಿ ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್ ಕೋಡ್ನಲ್ಲಿ ನೇರವಾಗಿ useInsertionEffect
ಅನ್ನು ಬಳಸುವುದಿಲ್ಲ. ಬದಲಾಗಿ, ಇದನ್ನು ಪ್ರಾಥಮಿಕವಾಗಿ CSS-in-JS ಲೈಬ್ರರಿ ಲೇಖಕರು ಸ್ಟೈಲ್ ಇಂಜೆಕ್ಷನ್ ಅನ್ನು ಆಪ್ಟಿಮೈಜ್ ಮಾಡಲು ಬಳಸುತ್ತಾರೆ.
useInsertionEffect
ವಿಶೇಷವಾಗಿ ಉಪಯುಕ್ತವಾಗಿರುವ ಕೆಲವು ಸನ್ನಿವೇಶಗಳು ಇಲ್ಲಿವೆ:
- CSS-in-JS ಲೈಬ್ರರಿಯನ್ನು ನಿರ್ಮಿಸುವುದು: ನೀವು ನಿಮ್ಮ ಸ್ವಂತ CSS-in-JS ಲೈಬ್ರರಿಯನ್ನು ರಚಿಸುತ್ತಿದ್ದರೆ, ಸ್ಟೈಲ್ ಇಂಜೆಕ್ಷನ್ ಅನ್ನು ಆಪ್ಟಿಮೈಜ್ ಮಾಡಲು ಮತ್ತು ಲೇಔಟ್ ಥ್ರಾಶಿಂಗ್ ಅನ್ನು ತಡೆಯಲು
useInsertionEffect
ಅತ್ಯಗತ್ಯ. - CSS-in-JS ಲೈಬ್ರರಿಗೆ ಕೊಡುಗೆ ನೀಡುವುದು: ನೀವು ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ CSS-in-JS ಲೈಬ್ರರಿಗೆ ಕೊಡುಗೆ ನೀಡುತ್ತಿದ್ದರೆ, ಅದರ ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಸುಧಾರಿಸಲು
useInsertionEffect
ಅನ್ನು ಬಳಸುವುದನ್ನು ಪರಿಗಣಿಸಿ. - CSS-in-JS ನೊಂದಿಗೆ ಕಾರ್ಯಕ್ಷಮತೆಯ ಸಮಸ್ಯೆಗಳನ್ನು ಅನುಭವಿಸುವುದು: ನೀವು CSS-in-JS ಗೆ ಸಂಬಂಧಿಸಿದ ಕಾರ್ಯಕ್ಷಮತೆಯ ಅಡಚಣೆಗಳನ್ನು ಎದುರಿಸುತ್ತಿದ್ದರೆ, ನಿಮ್ಮ ಲೈಬ್ರರಿಯು
useInsertionEffect
ಅನ್ನು ಬಳಸುತ್ತಿದೆಯೇ ಎಂದು ಪರಿಶೀಲಿಸಿ. ಇಲ್ಲದಿದ್ದರೆ, ಅದರ ಅಳವಡಿಕೆಯನ್ನು ಲೈಬ್ರರಿ ನಿರ್ವಾಹಕರಿಗೆ ಸೂಚಿಸುವುದನ್ನು ಪರಿಗಣಿಸಿ.
useInsertionEffect
ಗೆ ಪರ್ಯಾಯಗಳು
useInsertionEffect
CSS-in-JS ಅನ್ನು ಆಪ್ಟಿಮೈಜ್ ಮಾಡಲು ಒಂದು ಪ್ರಬಲ ಸಾಧನವಾಗಿದ್ದರೂ, ಸ್ಟೈಲಿಂಗ್ ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಸುಧಾರಿಸಲು ನೀವು ಬಳಸಬಹುದಾದ ಇತರ ತಂತ್ರಗಳಿವೆ.
- CSS Modules: CSS Modules ಕಾಂಪೊನೆಂಟ್-ಹಂತದ ಸ್ಕೋಪಿಂಗ್ ಅನ್ನು ನೀಡುತ್ತವೆ ಮತ್ತು ಹೆಸರಿಸುವ ಸಂಘರ್ಷಗಳನ್ನು ತಪ್ಪಿಸಲು ಬಳಸಬಹುದು. ಅವು CSS-in-JS ನಂತಹ ಡೈನಾಮಿಕ್ ಸ್ಟೈಲಿಂಗ್ ಅನ್ನು ಒದಗಿಸುವುದಿಲ್ಲ, ಆದರೆ ಸರಳವಾದ ಸ್ಟೈಲಿಂಗ್ ಅಗತ್ಯಗಳಿಗಾಗಿ ಅವು ಉತ್ತಮ ಆಯ್ಕೆಯಾಗಿರಬಹುದು.
- Atomic CSS: Atomic CSS (ಯುಟಿಲಿಟಿ-ಫಸ್ಟ್ CSS ಎಂದೂ ಕರೆಯಲ್ಪಡುತ್ತದೆ) ಸಣ್ಣ, ಮರುಬಳಕೆ ಮಾಡಬಹುದಾದ CSS ಕ್ಲಾಸ್ಗಳನ್ನು ರಚಿಸುವುದನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ, ಇವುಗಳನ್ನು ಎಲಿಮೆಂಟ್ಗಳನ್ನು ಸ್ಟೈಲ್ ಮಾಡಲು ಸಂಯೋಜಿಸಬಹುದು. ಈ ವಿಧಾನವು CSS ಬಂಡಲ್ ಗಾತ್ರವನ್ನು ಕಡಿಮೆ ಮಾಡುತ್ತದೆ ಮತ್ತು ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಸುಧಾರಿಸುತ್ತದೆ.
- Static CSS: ಡೈನಾಮಿಕ್ ಆಗಿ ಹೊಂದಿಸಬೇಕಾಗಿಲ್ಲದ ಸ್ಟೈಲ್ಗಳಿಗಾಗಿ, ಸಾಂಪ್ರದಾಯಿಕ CSS ಸ್ಟೈಲ್ಶೀಟ್ಗಳನ್ನು ಬಳಸುವುದನ್ನು ಪರಿಗಣಿಸಿ. ಇದು CSS-in-JS ಗಿಂತ ಹೆಚ್ಚು ಕಾರ್ಯಕ್ಷಮತೆ ಹೊಂದಿರಬಹುದು, ಏಕೆಂದರೆ ಸ್ಟೈಲ್ಗಳು ಮುಂಚಿತವಾಗಿ ಲೋಡ್ ಆಗುತ್ತವೆ ಮತ್ತು ಡೈನಾಮಿಕ್ ಇಂಜೆಕ್ಷನ್ ಅಗತ್ಯವಿರುವುದಿಲ್ಲ.
useLayoutEffect
ನ ಎಚ್ಚರಿಕೆಯ ಬಳಕೆ: ಸ್ಟೈಲ್ ಬದಲಾವಣೆಯ ನಂತರ ನೀವು ಲೇಔಟ್ ಪ್ರಾಪರ್ಟಿಗಳನ್ನು ಓದಬೇಕಾದರೆ, ಲೇಔಟ್ ಥ್ರಾಶಿಂಗ್ ಅನ್ನು ಕಡಿಮೆ ಮಾಡಲುuseLayoutEffect
ಅನ್ನು ಎಚ್ಚರಿಕೆಯಿಂದ ಬಳಸಿ. ಅನಗತ್ಯವಾಗಿ ಲೇಔಟ್ ಪ್ರಾಪರ್ಟಿಗಳನ್ನು ಓದುವುದನ್ನು ತಪ್ಪಿಸಿ, ಮತ್ತು ಲೇಔಟ್ ಮರುಲೆಕ್ಕಾಚಾರಗಳ ಸಂಖ್ಯೆಯನ್ನು ಕಡಿಮೆ ಮಾಡಲು ಅಪ್ಡೇಟ್ಗಳನ್ನು ಬ್ಯಾಚ್ ಮಾಡಿ.
CSS-in-JS ಆಪ್ಟಿಮೈಸೇಶನ್ಗಾಗಿ ಉತ್ತಮ ಅಭ್ಯಾಸಗಳು
ನೀವು useInsertionEffect
ಅನ್ನು ಬಳಸುತ್ತಿರಲಿ ಅಥವಾ ಇಲ್ಲದಿರಲಿ, CSS-in-JS ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಆಪ್ಟಿಮೈಜ್ ಮಾಡಲು ನೀವು ಅನುಸರಿಸಬಹುದಾದ ಹಲವಾರು ಉತ್ತಮ ಅಭ್ಯಾಸಗಳಿವೆ:
- ಡೈನಾಮಿಕ್ ಸ್ಟೈಲ್ಗಳನ್ನು ಕಡಿಮೆ ಮಾಡಿ: ಅಗತ್ಯವಿಲ್ಲದಿದ್ದರೆ ಡೈನಾಮಿಕ್ ಸ್ಟೈಲ್ಗಳನ್ನು ಬಳಸುವುದನ್ನು ತಪ್ಪಿಸಿ. ಸ್ಟ್ಯಾಟಿಕ್ ಸ್ಟೈಲ್ಗಳು ಸಾಮಾನ್ಯವಾಗಿ ಹೆಚ್ಚು ಕಾರ್ಯಕ್ಷಮತೆ ಹೊಂದಿರುತ್ತವೆ.
- ಬ್ಯಾಚ್ ಸ್ಟೈಲ್ ಅಪ್ಡೇಟ್ಗಳು: ನೀವು ಡೈನಾಮಿಕ್ ಆಗಿ ಸ್ಟೈಲ್ಗಳನ್ನು ಅಪ್ಡೇಟ್ ಮಾಡಬೇಕಾದರೆ, ಮರು-ರೆಂಡರ್ಗಳ ಸಂಖ್ಯೆಯನ್ನು ಕಡಿಮೆ ಮಾಡಲು ಅಪ್ಡೇಟ್ಗಳನ್ನು ಒಟ್ಟಿಗೆ ಬ್ಯಾಚ್ ಮಾಡಿ.
- ಮೆಮೊಯೈಸೇಶನ್ ಬಳಸಿ: CSS-in-JS ಅನ್ನು ಅವಲಂಬಿಸಿರುವ ಕಾಂಪೊನೆಂಟ್ಗಳ ಅನಗತ್ಯ ಮರು-ರೆಂಡರ್ಗಳನ್ನು ತಡೆಯಲು ಮೆಮೊಯೈಸೇಶನ್ ತಂತ್ರಗಳನ್ನು (ಉದಾ.,
React.memo
,useMemo
,useCallback
) ಬಳಸಿ. - ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಪ್ರೊಫೈಲ್ ಮಾಡಿ: ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಪ್ರೊಫೈಲ್ ಮಾಡಲು ಮತ್ತು CSS-in-JS ಗೆ ಸಂಬಂಧಿಸಿದ ಕಾರ್ಯಕ್ಷಮತೆಯ ಅಡಚಣೆಗಳನ್ನು ಗುರುತಿಸಲು React DevTools ಬಳಸಿ.
- CSS ವೇರಿಯಬಲ್ಗಳನ್ನು (ಕಸ್ಟಮ್ ಪ್ರಾಪರ್ಟೀಸ್) ಪರಿಗಣಿಸಿ: CSS ವೇರಿಯಬಲ್ಗಳು ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್ನಾದ್ಯಂತ ಡೈನಾಮಿಕ್ ಸ್ಟೈಲ್ಗಳನ್ನು ನಿರ್ವಹಿಸಲು ಒಂದು ಉತ್ತಮ ಮಾರ್ಗವನ್ನು ಒದಗಿಸಬಹುದು.
ತೀರ್ಮಾನ
useInsertionEffect
ರಿಯಾಕ್ಟ್ ಪರಿಸರ ವ್ಯವಸ್ಥೆಗೆ ಒಂದು ಮೌಲ್ಯಯುತವಾದ ಸೇರ್ಪಡೆಯಾಗಿದೆ, ಇದು CSS-in-JS ಲೈಬ್ರರಿಗಳನ್ನು ಆಪ್ಟಿಮೈಜ್ ಮಾಡಲು ಪ್ರಬಲವಾದ ಯಾಂತ್ರಿಕತೆಯನ್ನು ನೀಡುತ್ತದೆ. ರೆಂಡರಿಂಗ್ ಪೈಪ್ಲೈನ್ನಲ್ಲಿ ಮುಂಚಿತವಾಗಿ ಸ್ಟೈಲ್ಗಳನ್ನು ಇಂಜೆಕ್ಟ್ ಮಾಡುವ ಮೂಲಕ, ಇದು ಲೇಔಟ್ ಥ್ರಾಶಿಂಗ್ ಅನ್ನು ತಗ್ಗಿಸಲು ಮತ್ತು ಸುಗಮವಾದ ಬಳಕೆದಾರ ಅನುಭವವನ್ನು ಖಚಿತಪಡಿಸಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ. ನೀವು ಸಾಮಾನ್ಯವಾಗಿ ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್ ಕೋಡ್ನಲ್ಲಿ ನೇರವಾಗಿ useInsertionEffect
ಅನ್ನು ಬಳಸದಿದ್ದರೂ, ಅದರ ಉದ್ದೇಶ ಮತ್ತು ಪ್ರಯೋಜನಗಳನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು ಇತ್ತೀಚಿನ ರಿಯಾಕ್ಟ್ ಉತ್ತಮ ಅಭ್ಯಾಸಗಳೊಂದಿಗೆ ನವೀಕೃತವಾಗಿರಲು ನಿರ್ಣಾಯಕವಾಗಿದೆ. CSS-in-JS ವಿಕಸನಗೊಳ್ಳುತ್ತಲೇ ಇರುವುದರಿಂದ, ವಿಶ್ವದಾದ್ಯಂತ ಬಳಕೆದಾರರಿಗೆ ವೇಗವಾದ ಮತ್ತು ಹೆಚ್ಚು ಸ್ಪಂದಿಸುವ ವೆಬ್ ಅಪ್ಲಿಕೇಶನ್ಗಳನ್ನು ನೀಡಲು ಹೆಚ್ಚಿನ ಲೈಬ್ರರಿಗಳು useInsertionEffect
ಮತ್ತು ಇತರ ಕಾರ್ಯಕ್ಷಮತೆ ಆಪ್ಟಿಮೈಸೇಶನ್ ತಂತ್ರಗಳನ್ನು ಅಳವಡಿಸಿಕೊಳ್ಳುವುದನ್ನು ನಾವು ನಿರೀಕ್ಷಿಸಬಹುದು.
CSS-in-JS ನ ಸೂಕ್ಷ್ಮ ವ್ಯತ್ಯಾಸಗಳನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವ ಮೂಲಕ ಮತ್ತು useInsertionEffect
ನಂತಹ ಸಾಧನಗಳನ್ನು ಬಳಸಿಕೊಳ್ಳುವ ಮೂಲಕ, ಡೆವಲಪರ್ಗಳು ಜಾಗತಿಕವಾಗಿ ವೈವಿಧ್ಯಮಯ ಸಾಧನಗಳು ಮತ್ತು ನೆಟ್ವರ್ಕ್ಗಳಲ್ಲಿ ಅಸಾಧಾರಣ ಬಳಕೆದಾರ ಅನುಭವಗಳನ್ನು ನೀಡುವ ಹೆಚ್ಚು ಕಾರ್ಯಕ್ಷಮತೆಯ ಮತ್ತು ನಿರ್ವಹಿಸಬಲ್ಲ ರಿಯಾಕ್ಟ್ ಅಪ್ಲಿಕೇಶನ್ಗಳನ್ನು ರಚಿಸಬಹುದು. ಕಾರ್ಯಕ್ಷಮತೆಯ ಅಡಚಣೆಗಳನ್ನು ಗುರುತಿಸಲು ಮತ್ತು ಪರಿಹರಿಸಲು ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಯಾವಾಗಲೂ ಪ್ರೊಫೈಲ್ ಮಾಡಲು ಮರೆಯದಿರಿ, ಮತ್ತು ನಿರಂತರವಾಗಿ ವಿಕಸನಗೊಳ್ಳುತ್ತಿರುವ ವೆಬ್ ಅಭಿವೃದ್ಧಿ ಜಗತ್ತಿನಲ್ಲಿ ಇತ್ತೀಚಿನ ಉತ್ತಮ ಅಭ್ಯಾಸಗಳ ಬಗ್ಗೆ ಮಾಹಿತಿ ಪಡೆದುಕೊಳ್ಳಿ.