ಸಂಕೀರ್ಣ ಘಟಕಗಳಲ್ಲಿ ಅನನ್ಯ IDಗಳನ್ನು ನಿರ್ವಹಿಸಲು React ನ experimental_useOpaqueIdentifier ಅನ್ನು ಅನ್ವೇಷಿಸಿ. ಇದು ಹೇಗೆ ಕೆಲಸ ಮಾಡುತ್ತದೆ, ಅದರ ಪ್ರಯೋಜನಗಳು ಮತ್ತು ಪ್ರಾಯೋಗಿಕ ಅನುಷ್ಠಾನವನ್ನು ತಿಳಿಯಿರಿ.
React experimental_useOpaqueIdentifier ಮ್ಯಾನೇಜರ್: ID ಉತ್ಪಾದನೆಗೆ ಆಳವಾದ ಧುಮುಕು
React ಅಭಿವೃದ್ಧಿಯ ಸದಾ ವಿಕಾಸಗೊಳ್ಳುತ್ತಿರುವ ಭೂದೃಶ್ಯದಲ್ಲಿ, ಘಟಕ ಸಮಗ್ರತೆ ಮತ್ತು ಪ್ರವೇಶಿಸುವಿಕೆಯನ್ನು ಖಚಿತಪಡಿಸುವುದು ಅತ್ಯುನ್ನತವಾಗಿದೆ. React ನ experimental_useOpaqueIdentifier ನಿಮ್ಮ ಘಟಕಗಳಲ್ಲಿ ಅನನ್ಯ ಗುರುತಿಸುವಿಕೆಗಳನ್ನು (ID ಗಳು) ನಿರ್ವಹಿಸಲು ಪ್ರಬಲವಾದ, ಪ್ರಯೋಗಾತ್ಮಕ ಪರಿಹಾರವನ್ನು ನೀಡುತ್ತದೆ. ಈ ಬ್ಲಾಗ್ ಪೋಸ್ಟ್ experimental_useOpaqueIdentifier ನ ಸಮಗ್ರ ಪರಿಶೋಧನೆಯನ್ನು ಒದಗಿಸುತ್ತದೆ, ಅದರ ಕಾರ್ಯನಿರ್ವಹಣೆ, ಪ್ರಯೋಜನಗಳು ಮತ್ತು ಪ್ರಾಯೋಗಿಕ ಅನ್ವಯಿಕೆಗಳನ್ನು ಪರಿಶೀಲಿಸುತ್ತದೆ.
experimental_useOpaqueIdentifier ಎಂದರೇನು?
experimental_useOpaqueIdentifier ಅನನ್ಯ, ಅಪಾರದರ್ಶಕ ಗುರುತಿಸುವಿಕೆಗಳನ್ನು ಉತ್ಪಾದಿಸಲು ವಿನ್ಯಾಸಗೊಳಿಸಲಾದ React ಹುಕ್ ಆಗಿದೆ. ಈ ಗುರುತಿಸುವಿಕೆಗಳು ಸಂಪೂರ್ಣ React ಅಪ್ಲಿಕೇಶನ್ನಲ್ಲಿ ಅನನ್ಯವಾಗಿರುತ್ತವೆ ಎಂದು ಖಾತರಿಪಡಿಸಲಾಗುತ್ತದೆ, ಇದು ವಿವಿಧ ಬಳಕೆ ಪ್ರಕರಣಗಳಿಗೆ ಸೂಕ್ತವಾಗಿದೆ, ವಿಶೇಷವಾಗಿ ಪ್ರವೇಶಿಸುವಿಕೆ ಮತ್ತು ಘಟಕ ನಿರ್ವಹಣೆಗೆ ಸಂಬಂಧಿಸಿದೆ.
experimental_useOpaqueIdentifier ನ ಪ್ರಮುಖ ಗುಣಲಕ್ಷಣಗಳು:
- ಅನನ್ಯತೆ: ಅಪ್ಲಿಕೇಶನ್ನಾದ್ಯಂತ ಖಾತರಿಪಡಿಸಿದ ಅನನ್ಯತೆ.
- ಅಪಾರದರ್ಶಕ: ಉತ್ಪಾದಿತ ID ಯ ಆಂತರಿಕ ರಚನೆಯನ್ನು ಪರಿಶೀಲಿಸಲು ಅಥವಾ ಅವಲಂಬಿಸಲು ಅರ್ಥವಲ್ಲ. ಅದನ್ನು ಕಪ್ಪು ಪೆಟ್ಟಿಗೆಯಂತೆ ಪರಿಗಣಿಸಿ.
- ಹುಕ್-ಆಧಾರಿತ: React ನ ಹುಕ್ಸ್ API ಅನ್ನು ಬಳಸುತ್ತದೆ, ಇದು ಕ್ರಿಯಾತ್ಮಕ ಘಟಕಗಳಿಗೆ ಸಂಯೋಜಿಸಲು ಸುಲಭವಾಗುತ್ತದೆ.
- ಪ್ರಯೋಗಾತ್ಮಕ: ಹೆಸರೇ ಸೂಚಿಸುವಂತೆ, ಈ ಹುಕ್ ಇನ್ನೂ ಪ್ರಯೋಗಾತ್ಮಕವಾಗಿದೆ. ಇದರರ್ಥ ಅದರ API ಭವಿಷ್ಯದ React ಬಿಡುಗಡೆಗಳಲ್ಲಿ ಬದಲಾಗಬಹುದು. ಉತ್ಪಾದನಾ ಪರಿಸರದಲ್ಲಿ ಎಚ್ಚರಿಕೆಯಿಂದ ಬಳಸಿ ಮತ್ತು ನಿಮ್ಮ ಕೋಡ್ ಅನ್ನು React ವಿಕಸನಗೊಳ್ಳುತ್ತಿದ್ದಂತೆ ಹೊಂದಿಕೊಳ್ಳಲು ಸಿದ್ಧರಾಗಿರಿ.
experimental_useOpaqueIdentifier ಅನ್ನು ಏಕೆ ಬಳಸುವುದು?
ವೆಬ್ ಅಪ್ಲಿಕೇಶನ್ಗಳಲ್ಲಿ ಅನನ್ಯ ಗುರುತಿಸುವಿಕೆಗಳ ಅಗತ್ಯವು ಹಲವಾರು ಸನ್ನಿವೇಶಗಳಲ್ಲಿ ಉದ್ಭವಿಸುತ್ತದೆ. ಈ ಸನ್ನಿವೇಶಗಳನ್ನು ಪರಿಗಣಿಸಿ:
- ಪ್ರವೇಶಿಸುವಿಕೆ (ARIA): ಪ್ರವೇಶಿಸಬಹುದಾದ ವೆಬ್ ಅಪ್ಲಿಕೇಶನ್ಗಳನ್ನು ನಿರ್ಮಿಸುವಾಗ,
aria-labelledbyಮತ್ತುaria-describbyನಂತಹ ARIA ಗುಣಲಕ್ಷಣಗಳು ಅಂಶಗಳನ್ನು ಸಂಯೋಜಿಸಲು ಅನನ್ಯ ID ಗಳ ಮೇಲೆ ಅವಲಂಬಿಸಿವೆ. ಉದಾಹರಣೆಗೆ, ಲೇಬಲ್ ಇನ್ಪುಟ್ನ ID ಅನ್ನು ಬಳಸಿಕೊಂಡು ಅದು ವಿವರಿಸುವ ಇನ್ಪುಟ್ಗೆ ಸೂಚಿಸಬೇಕು. - ಘಟಕ ಸ್ಥಿತಿ ನಿರ್ವಹಣೆ: ಸಂಕೀರ್ಣ ಘಟಕಗಳಲ್ಲಿ, ನೀವು ನಿರ್ದಿಷ್ಟ ಆಂತರಿಕ ಅಂಶಗಳೊಂದಿಗೆ ಡೇಟಾ ಅಥವಾ ಸ್ಥಿತಿಯನ್ನು ಸಂಯೋಜಿಸಬೇಕಾಗಬಹುದು. ಅನನ್ಯ ID ಗಳು ಈ ಸಂಘಟನೆಗಳನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡಲು ವಿಶ್ವಾಸಾರ್ಹ ಮಾರ್ಗವನ್ನು ಒದಗಿಸಬಹುದು.
- ಸರ್ವರ್ ಘಟಕಗಳು: ಸರ್ವರ್ ಘಟಕಗಳು ಸರ್ವರ್ನಿಂದ ರಚಿತವಾದ ID ಅನ್ನು ಹೊಂದುವುದರಿಂದ ಪ್ರಯೋಜನ ಪಡೆಯಬಹುದು, ಅದನ್ನು ಕ್ಲೈಂಟ್ ಘಟಕಗಳಿಗೆ ರವಾನಿಸಬಹುದು. ಇದು ಸರ್ವರ್ನಲ್ಲಿ ID ಗಳು ಯಾವಾಗಲೂ ಅನನ್ಯವಾಗಿರುವುದನ್ನು ಖಚಿತಪಡಿಸುತ್ತದೆ ಮತ್ತು ಜಲಸಂಚಯದ ಹೊಂದಾಣಿಕೆಯಾಗದಿರುವುದನ್ನು ತಪ್ಪಿಸುತ್ತದೆ.
- ಹೆಸರಿಸುವ ಘರ್ಷಣೆಯನ್ನು ತಪ್ಪಿಸುವುದು: ಅನೇಕ ಡೆವಲಪರ್ಗಳು ಘಟಕಗಳನ್ನು ಕೊಡುಗೆ ನೀಡುವ ದೊಡ್ಡ ಅಪ್ಲಿಕೇಶನ್ಗಳಲ್ಲಿ, ಹೆಸರಿಸುವ ಘರ್ಷಣೆಯ ಅಪಾಯವು ಹೆಚ್ಚಾಗುತ್ತದೆ.
experimental_useOpaqueIdentifierಅನನ್ಯ ID ಗಳನ್ನು ಉತ್ಪಾದಿಸಲು ಕೇಂದ್ರೀಕೃತ ಮತ್ತು ವಿಶ್ವಾಸಾರ್ಹ ಕಾರ್ಯವಿಧಾನವನ್ನು ಒದಗಿಸುವ ಮೂಲಕ ಈ ಅಪಾಯವನ್ನು ನಿವಾರಿಸುತ್ತದೆ.
ಉದಾಹರಣೆ: ARIA ಜೊತೆಗೆ ಪ್ರವೇಶಿಸುವಿಕೆ
ಸಂಬಂಧಿತ ಲೇಬಲ್ನೊಂದಿಗೆ ನೀವು ಕಸ್ಟಮ್ ಇನ್ಪುಟ್ ಘಟಕವನ್ನು ನಿರ್ಮಿಸುತ್ತಿದ್ದೀರಿ ಎಂದು ಊಹಿಸಿ. ಪ್ರವೇಶಿಸುವಿಕೆಯನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು ನೀವು experimental_useOpaqueIdentifier ಅನ್ನು ಹೇಗೆ ಬಳಸಬಹುದು ಎಂಬುದನ್ನು ನೋಡಿ:
import React from 'react';
import { experimental_useOpaqueIdentifier as useOpaqueIdentifier } from 'react';
function CustomInput(props) {
const id = useOpaqueIdentifier();
return (
<div>
<label htmlFor={id}>{props.label}</label>
<input type="text" id={id} {...props} />
</div>
);
}
export default CustomInput;
ಈ ಉದಾಹರಣೆಯಲ್ಲಿ, useOpaqueIdentifier() ಒಂದು ಅನನ್ಯ ID ಅನ್ನು ಉತ್ಪಾದಿಸುತ್ತದೆ. ಈ ID ಅನ್ನು ಲೇಬಲ್ನ htmlFor ಗುಣಲಕ್ಷಣವಾಗಿ ಮತ್ತು ಇನ್ಪುಟ್ನ id ಗುಣಲಕ್ಷಣವಾಗಿ ಬಳಸಲಾಗುತ್ತದೆ, ಇದು ಸ್ಕ್ರೀನ್ ರೀಡರ್ಗಳು ಮತ್ತು ಇತರ ಸಹಾಯಕ ತಂತ್ರಜ್ಞಾನಗಳಿಗಾಗಿ ಅಗತ್ಯವಾದ ಸಂಘಟನೆಯನ್ನು ರಚಿಸುತ್ತದೆ.
experimental_useOpaqueIdentifier ಅನ್ನು ಹೇಗೆ ಬಳಸುವುದು
experimental_useOpaqueIdentifier ಬಳಸುವುದು ನೇರವಾಗಿರುತ್ತದೆ. ಪ್ರಕ್ರಿಯೆಯ ಒಂದು ವಿಘಟನೆ ಇಲ್ಲಿದೆ:
- ಹುಕ್ ಅನ್ನು ಆಮದು ಮಾಡಿ:
experimental_useOpaqueIdentifierಅನ್ನು'react'ಪ್ಯಾಕೇಜ್ನಿಂದ ಆಮದು ಮಾಡಿ. - ಹುಕ್ ಅನ್ನು ಕರೆ ಮಾಡಿ: ನಿಮ್ಮ ಕ್ರಿಯಾತ್ಮಕ ಘಟಕದೊಳಗೆ
useOpaqueIdentifier()ಅನ್ನು ಕರೆ ಮಾಡಿ. - ID ಯನ್ನು ಬಳಸಿ: ಅಗತ್ಯವಿರುವಂತೆ ಹಿಂತಿರುಗಿದ ID ಅನ್ನು ಬಳಸಿ, ಸಾಮಾನ್ಯವಾಗಿ HTML ಅಂಶಗಳ
idಗುಣಲಕ್ಷಣವನ್ನು ಹೊಂದಿಸಲು ಅಥವಾ ಆಂತರಿಕ ಡೇಟಾ ರಚನೆಗಳಿಗೆ ಕೀಲಿಯಾಗಿ.
ವಿವರವಾದ ಉದಾಹರಣೆ
ಪ್ರತಿಯೊಂದು ಐಟಂ ಅನನ್ಯ ID ಹೊಂದಿರುವ ಐಟಂಗಳ ಪಟ್ಟಿಯನ್ನು ಒಳಗೊಂಡಿರುವ ಹೆಚ್ಚು ಸಮಗ್ರ ಉದಾಹರಣೆಯನ್ನು ರಚಿಸೋಣ:
import React from 'react';
import { experimental_useOpaqueIdentifier as useOpaqueIdentifier } from 'react';
function Item(props) {
const id = useOpaqueIdentifier();
return <li id={id}>{props.children}</li>;
}
function ItemList(props) {
return (
<ul>
{props.items.map((item, index) => (
<Item key={index}>{item}</Item>
))}
</ul>
);
}
function App() {
const items = ['Apple', 'Banana', 'Cherry'];
return <ItemList items={items} />;
}
export default App;
ಈ ಉದಾಹರಣೆಯಲ್ಲಿ, ಪ್ರತಿಯೊಂದು <Item> ಘಟಕವು ತನ್ನದೇ ಆದ ಅನನ್ಯ ID ಅನ್ನು ಉತ್ಪಾದಿಸುತ್ತದೆ. ಇದು ಪ್ರತಿ ಪಟ್ಟಿ ಐಟಂ ವಿಶಿಷ್ಟ ID ಅನ್ನು ಹೊಂದಿದೆ ಎಂದು ಖಚಿತಪಡಿಸುತ್ತದೆ, ಇದು ಸ್ಟೈಲಿಂಗ್, ಈವೆಂಟ್ ನಿರ್ವಹಣೆ ಅಥವಾ ಪ್ರವೇಶಿಸುವಿಕೆ ಉದ್ದೇಶಗಳಿಗಾಗಿ ಉಪಯುಕ್ತವಾಗಿದೆ.
ಪರಿಗಣನೆಗಳು ಮತ್ತು ಉತ್ತಮ ಅಭ್ಯಾಸಗಳು
experimental_useOpaqueIdentifier ಅನನ್ಯ ID ಗಳನ್ನು ಉತ್ಪಾದಿಸಲು ಅನುಕೂಲಕರ ಪರಿಹಾರವನ್ನು ನೀಡುತ್ತದೆಯಾದರೂ, ಈ ಅಂಶಗಳನ್ನು ಪರಿಗಣಿಸುವುದು ಅತ್ಯಗತ್ಯ:
- ಪ್ರಯೋಗಾತ್ಮಕ ಸ್ಥಿತಿ: API ಪ್ರಯೋಗಾತ್ಮಕವಾಗಿದೆ ಮತ್ತು ಬದಲಾವಣೆಗೆ ಒಳಪಟ್ಟಿರುತ್ತದೆ ಎಂಬುದನ್ನು ತಿಳಿದಿರಲಿ. ನಿಮ್ಮ ಯೋಜನೆಯ ಅಪಾಯದ ಮೌಲ್ಯಮಾಪನಕ್ಕೆ ಇದನ್ನು ಸೇರಿಸಿ.
- ಅಪಾರದರ್ಶಕತೆ: ಉತ್ಪಾದಿತ ID ಗಳನ್ನು ಅಪಾರದರ್ಶಕ ಮೌಲ್ಯಗಳೆಂದು ಪರಿಗಣಿಸಿ. ಅವುಗಳ ಆಂತರಿಕ ರಚನೆಯಿಂದ ಅರ್ಥವನ್ನು ವಿಶ್ಲೇಷಿಸಲು ಅಥವಾ ಪಡೆಯಲು ಪ್ರಯತ್ನಿಸಬೇಡಿ. ಅವುಗಳ ಅನನ್ಯತೆಯನ್ನು ಮಾತ್ರ ಅವಲಂಬಿಸಿರಿ.
- ಕಾರ್ಯಕ್ಷಮತೆ: ಕಾರ್ಯಕ್ಷಮತೆಯ ಓವರ್ಹೆಡ್ ಸಾಮಾನ್ಯವಾಗಿ ನಗಣ್ಯವಾಗಿದ್ದರೂ, ಹೆಚ್ಚು ಕಾರ್ಯಕ್ಷಮತೆ-ಸೂಕ್ಷ್ಮ ಘಟಕಗಳಲ್ಲಿ ಅತಿಯಾದ ID ಗಳನ್ನು ಉತ್ಪಾದಿಸುವ ಬಗ್ಗೆ ತಿಳಿದಿರಲಿ. ಅಗತ್ಯವಿದ್ದರೆ ಮೆಮೊರೈಸೇಶನ್ ಅಥವಾ ಇತರ ಆಪ್ಟಿಮೈಸೇಶನ್ ತಂತ್ರಗಳನ್ನು ಪರಿಗಣಿಸಿ.
- ಜಲಸಂಚಯದ ಹೊಂದಾಣಿಕೆಗಳು (ಸರ್ವರ್-ಸೈಡ್ ರೆಂಡರಿಂಗ್): ಸರ್ವರ್-ಸೈಡ್ ರೆಂಡರಿಂಗ್ (SSR) ಅನ್ನು ಬಳಸುವಾಗ, ಸರ್ವರ್ನಲ್ಲಿ ಉತ್ಪತ್ತಿಯಾಗುವ ID ಗಳು ಕ್ಲೈಂಟ್ನಲ್ಲಿ ಉತ್ಪತ್ತಿಯಾಗುವ ID ಗಳಿಗೆ ಹೊಂದಿಕೆಯಾಗುತ್ತವೆಯೇ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ. ಇದನ್ನು ಸರ್ವರ್ನಲ್ಲಿ ಅಥವಾ ಕ್ಲೈಂಟ್ನಲ್ಲಿ ಮಾತ್ರ ಬಳಸುವುದು ಹೊಂದಾಣಿಕೆಯಾಗದಿರುವಿಕೆಗೆ ಕಾರಣವಾಗುತ್ತದೆ. SSR ಸನ್ನಿವೇಶಗಳಲ್ಲಿ ಸರಿಯಾಗಿ ಬಳಸಿದರೆ
experimental_useOpaqueIdentifierಹೊಂದಾಣಿಕೆಯಾಗದಿರುವುದನ್ನು ತಡೆಯಲು ಸಹಾಯ ಮಾಡಬಹುದು. - ಪರ್ಯಾಯಗಳು:
experimental_useOpaqueIdentifierಅನ್ನು ಅಳವಡಿಸಿಕೊಳ್ಳುವ ಮೊದಲು, ನಿಮ್ಮ ನಿರ್ದಿಷ್ಟ ಬಳಕೆಯ ಪ್ರಕರಣಕ್ಕೆ ಘಟಕದ ವ್ಯಾಪ್ತಿಯೊಳಗೆ ಕೌಂಟರ್ ಅನ್ನು ಹೆಚ್ಚಿಸುವಂತಹ ಸರಳ ಪರಿಹಾರಗಳು ಸಾಕಾಗುತ್ತವೆಯೇ ಎಂದು ಪರಿಗಣಿಸಿ. ಆದಾಗ್ಯೂ, ಅಂತಹ ವಿಧಾನಗಳ ಮಿತಿಗಳನ್ನು ತಿಳಿದಿರಲಿ, ವಿಶೇಷವಾಗಿ ಡೈನಾಮಿಕ್ ಘಟಕ ರೆಂಡರಿಂಗ್ ಅಥವಾ ಸರ್ವರ್-ಸೈಡ್ ರೆಂಡರಿಂಗ್ ಅನ್ನು ವ್ಯವಹರಿಸುವಾಗ.
SSR (ಸರ್ವರ್ ಸೈಡ್ ರೆಂಡರಿಂಗ್) ಮತ್ತು experimental_useOpaqueIdentifier
ನಿಮ್ಮ React ಅಪ್ಲಿಕೇಶನ್ಗಳಲ್ಲಿ SSR ಅನ್ನು ಸಂಯೋಜಿಸುವಾಗ, ನಿರ್ದಿಷ್ಟವಾಗಿ Next.js ಅಥವಾ Remix ನಂತಹ ಚೌಕಟ್ಟುಗಳೊಂದಿಗೆ, experimental_useOpaqueIdentifier ನ ಸರಿಯಾದ ಬಳಕೆಯು ಜಲಸಂಚಯ ದೋಷಗಳನ್ನು ತಪ್ಪಿಸಲು ನಿರ್ಣಾಯಕವಾಗಿದೆ. ಸರ್ವರ್ನಲ್ಲಿ ಆರಂಭದಲ್ಲಿ ರೆಂಡರ್ ಮಾಡಿದ HTML ಕ್ಲೈಂಟ್-ಸೈಡ್ React ಕೋಡ್ನಿಂದ ಲೋಡ್ ಆದ ನಂತರ ಉತ್ಪತ್ತಿಯಾಗುವ HTML ನಿಂದ ಭಿನ್ನವಾದಾಗ ಜಲಸಂಚಯ ದೋಷಗಳು ಸಂಭವಿಸುತ್ತವೆ. ಈ ವ್ಯತ್ಯಾಸವು ದೃಶ್ಯ ಅಸಮರ್ಪಕತೆಗಳು ಮತ್ತು ಅನಿರೀಕ್ಷಿತ ನಡವಳಿಕೆಗೆ ಕಾರಣವಾಗಬಹುದು.
ID ಹೊಂದಾಣಿಕೆಯಾಗದಿರುವುದರಿಂದ ಸಮಸ್ಯೆ ಉದ್ಭವಿಸುತ್ತದೆ. ಸರ್ವರ್ ಮತ್ತು ಕ್ಲೈಂಟ್ನಲ್ಲಿ ID ಗಳನ್ನು ವಿಭಿನ್ನವಾಗಿ ಉತ್ಪಾದಿಸಿದರೆ, React ವ್ಯತ್ಯಾಸವನ್ನು ಪತ್ತೆ ಮಾಡುತ್ತದೆ ಮತ್ತು ಅದನ್ನು ಸರಿಪಡಿಸಲು ಪ್ರಯತ್ನಿಸುತ್ತದೆ, ಇದು ಸಂಭಾವ್ಯವಾಗಿ ಕಾರ್ಯಕ್ಷಮತೆ ಸಮಸ್ಯೆಗಳು ಅಥವಾ ದೃಶ್ಯ ದೋಷಗಳಿಗೆ ಕಾರಣವಾಗುತ್ತದೆ.
ಉದಾಹರಣೆ: Next.js ನೊಂದಿಗೆ SSR
ಸರ್ವರ್ ಮತ್ತು ಕ್ಲೈಂಟ್ ಎರಡರಲ್ಲೂ ರೆಂಡರ್ ಮಾಡಲಾದ Next.js ಘಟಕದಲ್ಲಿ experimental_useOpaqueIdentifier ಅನ್ನು ಸರಿಯಾಗಿ ಹೇಗೆ ಬಳಸುವುದು ಎಂಬುದನ್ನು ಇಲ್ಲಿ ಉದಾಹರಣೆಯಾಗಿದೆ:
// components/MyComponent.js
import React from 'react';
import { experimental_useOpaqueIdentifier as useOpaqueIdentifier } from 'react';
function MyComponent() {
const id = useOpaqueIdentifier();
return (
<div id={id}>
<p>This is my component.</p>
</div>
);
}
export default MyComponent;
// pages/index.js
import MyComponent from '../components/MyComponent';
function HomePage() {
return (
<div>
<h1>Welcome to my page!</h1>
<MyComponent />
</div>
);
}
export default HomePage;
MyComponent ನಲ್ಲಿ ನೇರವಾಗಿ experimental_useOpaqueIdentifier ಅನ್ನು ಬಳಸುವ ಮೂಲಕ, ನೆಕ್ಸ್ಟ್.ಜೆಎಸ್ ಜಲಸಂಚಯದ ಸಮಯದಲ್ಲಿ ID ಗಳನ್ನು ಸರಿಪಡಿಸಬಹುದೆಂದು ನೀವು ಖಚಿತಪಡಿಸುತ್ತೀರಿ. ನೀವು ಯಾವುದೇ ಇತರ ID ಉತ್ಪಾದನಾ ವಿಧಾನವನ್ನು ಪ್ರತಿಕ್ರಿಯೆ ಹುಕ್ನ ಹೊರಗೆ ಬಳಸಲು ಪ್ರಯತ್ನಿಸಿದರೆ ಅಥವಾ ಸರ್ವರ್ ಅಥವಾ ಕ್ಲೈಂಟ್ನಲ್ಲಿ ಮಾತ್ರ ಹುಕ್ ಅನ್ನು ಬಳಸಿದರೆ, ನೀವು ಸಮಸ್ಯೆಗಳನ್ನು ಎದುರಿಸುತ್ತೀರಿ. ಸರಿಯಾಗಿ ಕೆಲಸ ಮಾಡಲು SSR ನೊಂದಿಗೆ ಕ್ಲೈಂಟ್ ಮತ್ತು ಸರ್ವರ್ ಎರಡರಲ್ಲೂ ಇದು ರನ್ ಆಗಬೇಕು ಎಂಬುದನ್ನು ನೆನಪಿಟ್ಟುಕೊಳ್ಳುವುದು ಮುಖ್ಯ.
SSR ಮತ್ತು ID ಗಳಿಗಾಗಿ ಉತ್ತಮ ಅಭ್ಯಾಸಗಳು
- ಸ್ಥಿರ ID ಉತ್ಪಾದನೆ: ID ಉತ್ಪಾದನಾ ತರ್ಕವು ಸರ್ವರ್ ಮತ್ತು ಕ್ಲೈಂಟ್ ಎರಡರಲ್ಲೂ ಒಂದೇ ಆಗಿದೆಯೇ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ.
experimental_useOpaqueIdentifierಇದನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ನಿರ್ವಹಿಸುತ್ತದೆ. - ಯಾದೃಚ್ಛಿಕ ID ಗಳನ್ನು ತಪ್ಪಿಸಿ: ಯಾದೃಚ್ಛಿಕ ಸಂಖ್ಯೆ ಜನರೇಟರ್ಗಳು ಅಥವಾ ID ಗಳನ್ನು ರಚಿಸಲು ಇತರ ಅನಿರೀಕ್ಷಿತ ವಿಧಾನಗಳನ್ನು ಬಳಸಬೇಡಿ, ಏಕೆಂದರೆ ಇದು ಬಹುತೇಕ ಖಚಿತವಾಗಿ ಜಲಸಂಚಯ ದೋಷಗಳಿಗೆ ಕಾರಣವಾಗುತ್ತದೆ.
- ಸಂಪೂರ್ಣವಾಗಿ ಪರೀಕ್ಷಿಸಿ: ID ಗಳಿಗೆ ಸಂಬಂಧಿಸಿದ ಯಾವುದೇ ಜಲಸಂಚಯ ಸಮಸ್ಯೆಗಳನ್ನು ಗುರುತಿಸಲು ಮತ್ತು ಪರಿಹರಿಸಲು ನಿಮ್ಮ ಘಟಕಗಳನ್ನು ಸರ್ವರ್-ರೆಂಡರ್ಡ್ ಮತ್ತು ಕ್ಲೈಂಟ್-ರೆಂಡರ್ಡ್ ಪರಿಸರದಲ್ಲಿ ಪರೀಕ್ಷಿಸಿ.
- React ನ ಜಲಸಂಚಯ ಎಚ್ಚರಿಕೆಗಳನ್ನು ಬಳಸಿ: ಬ್ರೌಸರ್ ಕನ್ಸೋಲ್ನಲ್ಲಿ React ಪ್ರದರ್ಶಿಸುವ ಯಾವುದೇ ಜಲಸಂಚಯ ಎಚ್ಚರಿಕೆಗಳಿಗೆ ಗಮನ ಕೊಡಿ. ಈ ಎಚ್ಚರಿಕೆಗಳು ಸಾಮಾನ್ಯವಾಗಿ ID ಹೊಂದಾಣಿಕೆಯಾಗದಿರುವುದು ಅಥವಾ ಸರ್ವರ್ ಮತ್ತು ಕ್ಲೈಂಟ್ HTML ನಡುವಿನ ಇತರ ಅಸಂಗತತೆಗಳೊಂದಿಗೆ ಸಮಸ್ಯೆಗಳನ್ನು ಸೂಚಿಸುತ್ತವೆ.
experimental_useOpaqueIdentifier ಗೆ ಪರ್ಯಾಯಗಳು
experimental_useOpaqueIdentifier ಅನನ್ಯ ID ಗಳನ್ನು ಉತ್ಪಾದಿಸಲು ಅನುಕೂಲಕರ ಮಾರ್ಗವನ್ನು ಒದಗಿಸುತ್ತದೆಯಾದರೂ, ನಿಮ್ಮ ನಿರ್ದಿಷ್ಟ ಅಗತ್ಯಗಳು ಮತ್ತು ನಿರ್ಬಂಧಗಳನ್ನು ಅವಲಂಬಿಸಿ, ನೀವು ಪರಿಗಣಿಸಬಹುದಾದ ಪರ್ಯಾಯ ವಿಧಾನಗಳಿವೆ.
- ಕೌಂಟರ್ ಅನ್ನು ಹೆಚ್ಚಿಸುವುದು: ಘಟಕದ ವ್ಯಾಪ್ತಿಯೊಳಗೆ ಕೌಂಟರ್ ಅನ್ನು ನಿರ್ವಹಿಸುವುದು ಮತ್ತು ಪ್ರತಿ ಬಾರಿ ಹೊಸ ID ಅಗತ್ಯವಿರುವಾಗ ಅದನ್ನು ಹೆಚ್ಚಿಸುವುದು ಒಂದು ಸರಳ ವಿಧಾನವಾಗಿದೆ. ಈ ವಿಧಾನವು ಸರಳ ಸನ್ನಿವೇಶಗಳಿಗೆ ಸೂಕ್ತವಾಗಿದೆ, ಅಲ್ಲಿ ID ಗಳ ಸಂಖ್ಯೆಯನ್ನು ಮುಂಚಿತವಾಗಿ ತಿಳಿದಿರುತ್ತದೆ ಮತ್ತು ಘಟಕದ ಜೀವಿತಾವಧಿಯನ್ನು ಉತ್ತಮವಾಗಿ ವ್ಯಾಖ್ಯಾನಿಸಲಾಗಿದೆ. ಆದಾಗ್ಯೂ, ಘಟಕವನ್ನು ಮರು-ರೆಂಡರ್ ಮಾಡಿದರೆ ಅಥವಾ ID ಗಳನ್ನು ಷರತ್ತಿನ ಆಧಾರದ ಮೇಲೆ ಉತ್ಪಾದಿಸಿದರೆ ಅದು ದೋಷಗಳಿಗೆ ಒಳಗಾಗಬಹುದು.
- UUID ಲೈಬ್ರರಿಗಳು:
uuidನಂತಹ ಲೈಬ್ರರಿಗಳು ಸಾರ್ವತ್ರಿಕವಾಗಿ ಅನನ್ಯ ಗುರುತಿಸುವಿಕೆಗಳನ್ನು (UUID ಗಳು) ಉತ್ಪಾದಿಸಬಹುದು. UUID ಗಳು ವಿಭಿನ್ನ ಸಿಸ್ಟಮ್ಗಳು ಮತ್ತು ಪರಿಸರಗಳಲ್ಲಿಯೂ ಸಹ ಘರ್ಷಣೆಯಾಗುವ ಸಾಧ್ಯತೆಯಿಲ್ಲ. ಆದಾಗ್ಯೂ, UUID ಗಳು ಸಾಮಾನ್ಯವಾಗಿexperimental_useOpaqueIdentifierನಿಂದ ಉತ್ಪತ್ತಿಯಾಗುವ ID ಗಳಿಗಿಂತ ಉದ್ದ ಮತ್ತು ಹೆಚ್ಚು ಸಂಕೀರ್ಣವಾಗಿವೆ, ಇದು ಕೆಲವು ಸಂದರ್ಭಗಳಲ್ಲಿ ಕಾರ್ಯಕ್ಷಮತೆ ಅಥವಾ ಸಂಗ್ರಹಣೆಯ ದಕ್ಷತೆಯ ಮೇಲೆ ಪರಿಣಾಮ ಬೀರಬಹುದು. - ಸಂದರ್ಭ-ಆಧಾರಿತ ID ಉತ್ಪಾದನೆ: ನೀವು ಜಾಗತಿಕ ID ಕೌಂಟರ್ ಅನ್ನು ನಿರ್ವಹಿಸಲು React ಸಂದರ್ಭವನ್ನು ರಚಿಸಬಹುದು. ಈ ವಿಧಾನವು ನಿಯಂತ್ರಿತ ಮತ್ತು ಕೇಂದ್ರೀಕೃತ ರೀತಿಯಲ್ಲಿ ಅನೇಕ ಘಟಕಗಳಲ್ಲಿ ಅನನ್ಯ ID ಗಳನ್ನು ಉತ್ಪಾದಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ. ಆದಾಗ್ಯೂ, ಇದು ಹೆಚ್ಚು ಬಾಯ್ಲರ್ಪ್ಲೇಟ್ ಕೋಡ್ ಅಗತ್ಯವಿದೆ ಮತ್ತು ಘಟಕದ ಮರವನ್ನು ಹೆಚ್ಚು ಸಂಕೀರ್ಣಗೊಳಿಸಬಹುದು.
- ಕಸ್ಟಮ್ ಹುಕ್: ನೀವು ಅನನ್ಯ ID ಗಳನ್ನು ಉತ್ಪಾದಿಸಲು ನಿಮ್ಮ ಸ್ವಂತ ಕಸ್ಟಮ್ ಹುಕ್ ಅನ್ನು ರಚಿಸಬಹುದು. ಇದು ID ಉತ್ಪಾದನಾ ಪ್ರಕ್ರಿಯೆಯ ಮೇಲೆ ಹೆಚ್ಚಿನ ನಿಯಂತ್ರಣವನ್ನು ನೀಡುತ್ತದೆ ಮತ್ತು ನಿಮ್ಮ ನಿರ್ದಿಷ್ಟ ಅವಶ್ಯಕತೆಗಳಿಗೆ ಅದನ್ನು ಸರಿಹೊಂದಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ. ಆದಾಗ್ಯೂ, ಇದನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲು ಮತ್ತು ನಿರ್ವಹಿಸಲು ಇದು ಹೆಚ್ಚು ಪ್ರಯತ್ನವನ್ನು ಬಯಸುತ್ತದೆ.
ತುಲನಾತ್ಮಕ ಕೋಷ್ಟಕ
| ವಿಧಾನ | ಅನುಕೂಲಗಳು | ಅನಾನುಕೂಲಗಳು | ಬಳಕೆ ಪ್ರಕರಣಗಳು |
|---|---|---|---|
experimental_useOpaqueIdentifier |
ಬಳಸಲು ಸುಲಭ, ಖಾತರಿಪಡಿಸಿದ ಅನನ್ಯತೆ, React ಗಾಗಿ ವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿದೆ. | ಪ್ರಯೋಗಾತ್ಮಕ API, ಭವಿಷ್ಯದಲ್ಲಿ ಬದಲಾಗಬಹುದು. | ಅನನ್ಯ ID ಗಳನ್ನು ಅಗತ್ಯವಿರುವ ಹೆಚ್ಚಿನ React ಘಟಕಗಳು, ವಿಶೇಷವಾಗಿ ಪ್ರವೇಶಿಸುವಿಕೆಗಾಗಿ. |
| ಕೌಂಟರ್ ಅನ್ನು ಹೆಚ್ಚಿಸುವುದು | ಸರಳ, ಹಗುರ. | ಅನನ್ಯತೆಗೆ ಖಾತರಿಯಿಲ್ಲ, ದೋಷಗಳಿಗೆ ಒಳಗಾಗುತ್ತದೆ. | ಸೀಮಿತ ಸಂಖ್ಯೆಯ ಸ್ಥಿರ ID ಗಳೊಂದಿಗೆ ಸರಳ ಘಟಕಗಳು. |
| UUID ಲೈಬ್ರರಿಗಳು | ಖಾತರಿಪಡಿಸಿದ ಅನನ್ಯತೆ, ವ್ಯಾಪಕವಾಗಿ ಬೆಂಬಲಿತವಾಗಿದೆ. | ಉದ್ದವಾದ ID ಗಳು, ಸಂಭಾವ್ಯ ಕಾರ್ಯಕ್ಷಮತೆ ಓವರ್ಹೆಡ್. | ವಿಭಿನ್ನ ಸಿಸ್ಟಮ್ಗಳಾದ್ಯಂತ ಜಾಗತಿಕವಾಗಿ ಅನನ್ಯ ID ಗಳನ್ನು ಅಗತ್ಯವಿರುವ ಸನ್ನಿವೇಶಗಳು. |
| ಸಂದರ್ಭ-ಆಧಾರಿತ ID ಉತ್ಪಾದನೆ | ಕೇಂದ್ರೀಕೃತ ID ನಿರ್ವಹಣೆ, ನಿಯಂತ್ರಿತ ಅನನ್ಯತೆ. | ಹೆಚ್ಚು ಸಂಕೀರ್ಣ ಸೆಟಪ್, ಸಂಭಾವ್ಯ ಕಾರ್ಯಕ್ಷಮತೆ ಓವರ್ಹೆಡ್. | ಸಂಕೀರ್ಣ ಘಟಕ ಮರಗಳನ್ನು ಹೊಂದಿರುವ ದೊಡ್ಡ ಅಪ್ಲಿಕೇಶನ್ಗಳು. |
| ಕಸ್ಟಮ್ ಹುಕ್ | ಗರಿಷ್ಠ ನಿಯಂತ್ರಣ, ನಿರ್ದಿಷ್ಟ ಅವಶ್ಯಕತೆಗಳಿಗೆ ಅನುಗುಣವಾಗಿರುತ್ತದೆ. | ಹೆಚ್ಚು ಪ್ರಯತ್ನದ ಅಗತ್ಯವಿದೆ, ದೋಷಗಳಿಗೆ ಅವಕಾಶವಿದೆ. | ನಿರ್ದಿಷ್ಟ ಗ್ರಾಹಕೀಕರಣದ ಅಗತ್ಯವಿರುವ ಅನನ್ಯ ID ಉತ್ಪಾದನೆ. |
ಪ್ರವೇಶಿಸುವಿಕೆಯನ್ನು ಮೀರಿ ಬಳಕೆ ಪ್ರಕರಣಗಳು
ಅದರ ಪ್ರವೇಶಿಸುವಿಕೆಯ ಪ್ರಯೋಜನಗಳಿಗಾಗಿ ಸಾಮಾನ್ಯವಾಗಿ ಎತ್ತಿ ತೋರಿಸಲಾಗಿದ್ದರೂ, experimental_useOpaqueIdentifier ARIA ಗುಣಲಕ್ಷಣಗಳನ್ನು ಮೀರಿ ವಿಸ್ತರಿಸುತ್ತದೆ. ಈ ಪರ್ಯಾಯ ಅಪ್ಲಿಕೇಶನ್ಗಳನ್ನು ಪರಿಗಣಿಸಿ:
- ಡೈನಾಮಿಕ್ ಪಟ್ಟಿಗಳಲ್ಲಿ ಅನನ್ಯ ಕೀಲಿಗಳು: React ನ
keyಪ್ರೊಪ್ ಸಾಮಾನ್ಯವಾಗಿ ಶ್ರೇಣೀ ಸೂಚಿಕೆಗಳನ್ನು ಬಳಸುತ್ತದೆ,experimental_useOpaqueIdentifierಮರುಕ್ರಮಗೊಳಿಸುವಿಕೆ ಅಥವಾ ಫಿಲ್ಟರಿಂಗ್ ಪಟ್ಟಿಗಳನ್ನು ವ್ಯವಹರಿಸುವಾಗ ಹೆಚ್ಚು ದೃಢವಾದ ಮತ್ತು ವಿಶ್ವಾಸಾರ್ಹ ಕೀಲಿಗಳನ್ನು ಒದಗಿಸಬಹುದು. ಆದಾಗ್ಯೂ,keyಪ್ರೊಪ್ನ ಉದ್ದೇಶಿತ ಬಳಕೆಯು ಯಾವ ಐಟಂಗಳು ಬದಲಾಗಿವೆ, ಸೇರಿಸಲ್ಪಟ್ಟಿವೆ ಅಥವಾ ತೆಗೆದುಹಾಕಲಾಗಿದೆ ಎಂಬುದನ್ನು React ಗುರುತಿಸಲು ಸಹಾಯ ಮಾಡುವುದು ಎಂಬುದನ್ನು ನೆನಪಿಡಿ. ಮರು-ರೆಂಡರ್ಗಳಾದ್ಯಂತ ಸ್ಥಿರವಾಗಿರದ ಹೊರತುkeyಪ್ರೊಪ್ಗಾಗಿ ಯಾದೃಚ್ಛಿಕವಾಗಿ ಉತ್ಪತ್ತಿಯಾದ ID ಗಳನ್ನು ಬಳಸುವುದು ಸಾಮಾನ್ಯವಾಗಿ ಕೆಟ್ಟ ಅಭ್ಯಾಸವಾಗಿದೆ. - ನಿರ್ದಿಷ್ಟ ಅಂಶಗಳನ್ನು ಸ್ಟೈಲಿಂಗ್ ಮಾಡುವುದು: ನೀವು ಘಟಕದ ಗೋಚರತೆಯ ಮೇಲೆ ಉತ್ತಮ-ಧಾನ್ಯದ ನಿಯಂತ್ರಣವನ್ನು ಅನುಮತಿಸುವ ಮೂಲಕ, ಅಂಶದ ಅನನ್ಯ ID ಅನ್ನು ಆಧರಿಸಿ CSS ತರಗತಿಗಳು ಅಥವಾ ಶೈಲಿಗಳನ್ನು ಕ್ರಿಯಾತ್ಮಕವಾಗಿ ಅನ್ವಯಿಸಬಹುದು.
- ಈವೆಂಟ್ ನಿರ್ವಹಣೆ: ಸಂಕೀರ್ಣ ಘಟಕಗಳಲ್ಲಿ ಈವೆಂಟ್ಗಳನ್ನು ನಿರ್ವಹಿಸುವುದನ್ನು ಸುಲಭಗೊಳಿಸುವ ಮೂಲಕ, ಅವರ ಅನನ್ಯ ID ಗಳ ಆಧಾರದ ಮೇಲೆ ನೀವು ನಿರ್ದಿಷ್ಟ ಅಂಶಗಳಿಗೆ ಈವೆಂಟ್ ಕೇಳುಗರನ್ನು ಲಗತ್ತಿಸಬಹುದು.
- ಘಟಕ ಸಂವಹನ: ಅನನ್ಯ ID ಗಳನ್ನು ವಿಭಿನ್ನ ಘಟಕಗಳ ನಡುವೆ ಸಂವಹನ ಚಾನಲ್ ಆಗಿ ಬಳಸಬಹುದು. ಉದಾಹರಣೆಗೆ, ಒಂದು ಘಟಕವು ನಿರ್ದಿಷ್ಟ ID ಯೊಂದಿಗೆ ಸಂದೇಶವನ್ನು ಪ್ರಸಾರ ಮಾಡಬಹುದು ಮತ್ತು ಇನ್ನೊಂದು ಘಟಕವು ಆ ID ಯೊಂದಿಗೆ ಸಂದೇಶಗಳಿಗಾಗಿ ಕೇಳಬಹುದು.
ತೀರ್ಮಾನ
experimental_useOpaqueIdentifier React ಅಪ್ಲಿಕೇಶನ್ಗಳಲ್ಲಿ, ವಿಶೇಷವಾಗಿ ಪ್ರವೇಶಿಸಬಹುದಾದ ಮತ್ತು ದೃಢವಾದ ಘಟಕಗಳನ್ನು ನಿರ್ಮಿಸುವಾಗ ಅನನ್ಯ ID ಗಳನ್ನು ನಿರ್ವಹಿಸಲು ಒಂದು ಮೌಲ್ಯಯುತ ಸಾಧನವಾಗಿದೆ. ಅದರ ಪ್ರಯೋಗಾತ್ಮಕ ಸ್ಥಿತಿಯು ಎಚ್ಚರಿಕೆಗೆ ಅರ್ಹವಾಗಿದ್ದರೂ, ಅದರ ಬಳಕೆಯ ಸುಲಭತೆ ಮತ್ತು ಖಾತರಿಪಡಿಸಿದ ಅನನ್ಯತೆಯು ಅನೇಕ ಬಳಕೆ ಪ್ರಕರಣಗಳಿಗೆ ಆಕರ್ಷಕ ಆಯ್ಕೆಯಾಗಿದೆ. ಅದರ ಪ್ರಯೋಜನಗಳು, ಮಿತಿಗಳು ಮತ್ತು ಪರ್ಯಾಯಗಳನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವ ಮೂಲಕ, ನಿಮ್ಮ React ಕೋಡ್ನ ಗುಣಮಟ್ಟ ಮತ್ತು ನಿರ್ವಹಣೆಯನ್ನು ಹೆಚ್ಚಿಸಲು ನೀವು experimental_useOpaqueIdentifier ಅನ್ನು ಪರಿಣಾಮಕಾರಿಯಾಗಿ ಬಳಸಿಕೊಳ್ಳಬಹುದು. React ನ ಭವಿಷ್ಯದ ಬಿಡುಗಡೆಗಳ ಬಗ್ಗೆ ಮಾಹಿತಿಯಲ್ಲಿರಿ ಮತ್ತು API ವಿಕಸನಗೊಳ್ಳುತ್ತಿದ್ದಂತೆ ನಿಮ್ಮ ಕೋಡ್ ಅನ್ನು ಹೊಂದಿಕೊಳ್ಳಲು ಸಿದ್ಧರಾಗಿರಿ ಎಂಬುದನ್ನು ನೆನಪಿಡಿ. experimental_useOpaqueIdentifier ನಂತಹ ಪರಿಕರಗಳನ್ನು ಅಳವಡಿಸಿಕೊಳ್ಳುವುದರಿಂದ ವಿಶ್ವದಾದ್ಯಂತದ ಬಳಕೆದಾರರಿಗೆ ಹೆಚ್ಚು ಪ್ರವೇಶಿಸಬಹುದಾದ, ವಿಶ್ವಾಸಾರ್ಹ ಮತ್ತು ನಿರ್ವಹಿಸಬಹುದಾದ ವೆಬ್ ಅಪ್ಲಿಕೇಶನ್ಗಳನ್ನು ರಚಿಸಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ.
ಹೇಳಿಕೆ: ಈ ಮಾಹಿತಿಯು ಈ ಪ್ರಕಟಣೆಯ ದಿನಾಂಕದಂತೆ React ಮತ್ತು experimental_useOpaqueIdentifier ನ ಪ್ರಸ್ತುತ ಸ್ಥಿತಿಯನ್ನು ಆಧರಿಸಿದೆ. React ನ API ಬದಲಾವಣೆಗೆ ಒಳಪಟ್ಟಿರುತ್ತದೆ, ಆದ್ದರಿಂದ ಯಾವಾಗಲೂ ಇತ್ತೀಚಿನ ಮಾಹಿತಿಗಾಗಿ ಅಧಿಕೃತ React ದಸ್ತಾವೇಜನ್ನು ನೋಡಿ.