ரியாக்ட்டின் use: Resource Hook: ஒரு விரிவான வழிகாட்டி | MLOG | MLOG}> {/* Assuming this ID doesn't exist and will cause an error */} ); } export default App;

இந்த எடுத்துக்காட்டில், fetchUser செயல்பாடு ஒரு பிழையை (எ.கா., 404 ஸ்டேட்டஸ் காரணமாக) எறிந்தால், ErrorBoundary காம்போனென்ட் பிழையைப் பிடித்து ஃபால்பேக் UI-ஐ காண்பிக்கும். ஃபால்பேக் என்பது ஒரு பிழை செய்தி அல்லது மீண்டும் முயற்சிக்கும் பட்டன் போன்ற எந்தவொரு ரியாக்ட் காம்போனென்ட்டாகவும் இருக்கலாம்.

use: உடன் மேம்பட்ட நுட்பங்கள்

1. வளங்களை கேச்சிங் செய்தல்

மீண்டும் மீண்டும் பெறுவதைத் தவிர்க்க, நீங்கள் வளத்தை (ப்ராமிஸ்) கேச் செய்து பல காம்போனென்ட்கள் அல்லது ரெண்டர்களில் மீண்டும் பயன்படுத்தலாம். இந்த மேம்படுத்தல் செயல்திறனுக்கு முக்கியமானது.

            
import React, { Suspense, useRef } from 'react';

const resourceCache = new Map();

async function fetchUser(id) {
  const response = await fetch(`https://jsonplaceholder.typicode.com/users/${id}`);
  if (!response.ok) {
    throw new Error(`Failed to fetch user: ${response.status}`);
  }
  return response.json();
}

function getUserResource(userId) {
  if (!resourceCache.has(userId)) {
    resourceCache.set(userId, {
      read() {
        if (!this.promise) {
          this.promise = fetchUser(userId);
        }
        if (this.result) {
          return this.result;
        }
        throw this.promise;
      }
    });
  }
  return resourceCache.get(userId);
}

function UserProfile({ userId }) {
  const resource = getUserResource(userId);
  const user = resource.read();

  return (
    

{user.name}

Email: {user.email}

Phone: {user.phone}

); } function App() { return ( Loading user data...
}> ); } export default App;

இந்த எடுத்துக்காட்டில்:

2. சர்வர் காம்போனென்ட்களுடன் use: ஐப் பயன்படுத்துதல்

use: ஹூக் ரியாக்ட் சர்வர் காம்போனென்ட்களில் குறிப்பாகப் பயனுள்ளதாக இருக்கும், அங்கு தரவுப் பெறுதல் நேரடியாக சர்வரில் செய்யப்படலாம். இது வேகமான ஆரம்ப பக்க சுமைகளுக்கும் மேம்பட்ட எஸ்சிஓ-வுக்கும் வழிவகுக்கிறது.

Next.js சர்வர் காம்போனென்ட்டுடன் எடுத்துக்காட்டு

            
// app/user/[id]/page.jsx (Server Component in Next.js)
import React from 'react';

async function fetchUser(id) {
  const response = await fetch(`https://jsonplaceholder.typicode.com/users/${id}`);
  if (!response.ok) {
    throw new Error(`Failed to fetch user: ${response.status}`);
  }
  return response.json();
}

export default async function UserPage({ params }) {
  const user = React.use(fetchUser(params.id));

  return (
    

{user.name}

Email: {user.email}

Phone: {user.phone}

); }

இந்த Next.js சர்வர் காம்போனென்ட்டில், fetchUser செயல்பாடு சர்வரில் பயனர் தரவைப் பெறுகிறது. use: ஹூக் தரவு கிடைக்கும் வரை காம்போனென்ட்டை நிறுத்தி வைக்கிறது, இது திறமையான சர்வர்-சைட் ரெண்டரிங்கிற்கு அனுமதிக்கிறது.

use: க்கான சிறந்த நடைமுறைகள்

நிஜ-உலக எடுத்துக்காட்டுகள்

1. இ-காமர்ஸ் தயாரிப்பு பட்டியல்

தயாரிப்பு பட்டியல்களைக் காட்டும் ஒரு இ-காமர்ஸ் வலைத்தளத்தை கற்பனை செய்து பாருங்கள். ஒவ்வொரு தயாரிப்பு கார்டும் தயாரிப்பு விவரங்களைப் பெற use: ஐப் பயன்படுத்தலாம்:

            
// ProductCard.jsx
import React, { Suspense } from 'react';

async function fetchProduct(productId) {
  const response = await fetch(`/api/products/${productId}`);
  if (!response.ok) {
    throw new Error(`Failed to fetch product: ${response.status}`);
  }
  return response.json();
}

function ProductCard({ productId }) {
  const product = React.use(fetchProduct(productId));

  return (
    

{product.name}

{product.description}

Price: ${product.price}

); } function ProductList({ productIds }) { return (
{productIds.map((productId) => ( Loading product...
}> ))}
); } export default ProductList;

இந்த அணுகுமுறை ஒவ்வொரு தயாரிப்பு கார்டும் தனித்தனியாக ஏற்றப்படுவதை உறுதிசெய்கிறது, மற்றும் மெதுவாக ஏற்றப்படும் தயாரிப்புகளால் ஒட்டுமொத்த பக்க ரெண்டரிங் தடுக்கப்படவில்லை. பயனர் ஒவ்வொரு தயாரிப்புக்கும் தனிப்பட்ட ஏற்றுதல் குறிகாட்டிகளைக் காண்கிறார், இது ஒரு சிறந்த அனுபவத்தை வழங்குகிறது.

2. சமூக ஊடக ஊட்டம்

ஒரு சமூக ஊடக ஊட்டம் பயனர் சுயவிவரங்கள், பதிவுகள் மற்றும் கருத்துகளைப் பெற use: ஐப் பயன்படுத்தலாம்:

            
// Post.jsx
import React, { Suspense } from 'react';

async function fetchPost(postId) {
  const response = await fetch(`/api/posts/${postId}`);
  if (!response.ok) {
    throw new Error(`Failed to fetch post: ${response.status}`);
  }
  return response.json();
}

async function fetchComments(postId) {
  const response = await fetch(`/api/posts/${postId}/comments`);
  if (!response.ok) {
    throw new Error(`Failed to fetch comments: ${response.status}`);
  }
  return response.json();
}

function Comments({ postId }) {
  const comments = React.use(fetchComments(postId));

  return (
    
    {comments.map((comment) => (
  • {comment.text}
  • ))}
); } function Post({ postId }) { const post = React.use(fetchPost(postId)); return (

{post.title}

{post.content}

Loading comments...
}>
); } export default Post;

இந்த எடுத்துக்காட்டு, பதிவின் உள்ளடக்கம் மற்றும் கருத்துகளை தனித்தனியாக ஏற்றுவதற்கு உள்ளமைக்கப்பட்ட சஸ்பென்ஸ் எல்லைகளைப் பயன்படுத்துகிறது. கருத்துகள் இன்னும் ஏற்றப்படும்போது பயனர் பதிவின் உள்ளடக்கத்தைக் காணலாம்.

பொதுவான சிக்கல்கள் மற்றும் அவற்றை தவிர்ப்பது எப்படி

use: க்கான மாற்று வழிகள்

use: குறிப்பிடத்தக்க நன்மைகளை வழங்கினாலும், ரியாக்ட்டில் தரவுப் பெறுதலுக்கு மாற்று அணுகுமுறைகள் உள்ளன:

இந்த மாற்றுகளுக்கு இடையேயான தேர்வு உங்கள் பயன்பாட்டின் சிக்கலான தன்மை மற்றும் உங்கள் குறிப்பிட்ட தேவைகளைப் பொறுத்தது. எளிய தரவுப் பெறுதல் சூழ்நிலைகளுக்கு, use: ஒரு சிறந்த தேர்வாக இருக்கலாம். மேலும் சிக்கலான சூழ்நிலைகளுக்கு, useSWR அல்லது ரியாக்ட் குவரி போன்ற நூலகங்கள் மிகவும் பொருத்தமானதாக இருக்கலாம்.

முடிவுரை

ரியாக்ட்டில் உள்ள use: ஹூக் வளங்களை ஏற்றுவதற்கும் தரவுப் பெறுவதற்கும் ஒரு சக்திவாய்ந்த மற்றும் அறிவிப்பு வழியை வழங்குகிறது. சஸ்பென்ஸுடன் use: ஐப் பயன்படுத்துவதன் மூலம், உங்கள் காம்போனென்ட் தர்க்கத்தை எளிதாக்கலாம், பயனர் அனுபவத்தை மேம்படுத்தலாம் மற்றும் செயல்திறனை மேம்படுத்தலாம். இந்த வழிகாட்டி உங்கள் ரியாக்ட் பயன்பாடுகளில் use: ஐப் பயன்படுத்துவதற்கான அடிப்படைகள், மேம்பட்ட நுட்பங்கள் மற்றும் சிறந்த நடைமுறைகளை உள்ளடக்கியுள்ளது. இந்த வழிகாட்டுதல்களைப் பின்பற்றுவதன் மூலம், நீங்கள் ஒத்திசைவற்ற செயல்பாடுகளை திறம்பட நிர்வகிக்கலாம் மற்றும் வலுவான, செயல்திறன்மிக்க மற்றும் பயனர் நட்பு பயன்பாடுகளை உருவாக்கலாம். ரியாக்ட் தொடர்ந்து வளர்ச்சியடைந்து வருவதால், use: போன்ற நுட்பங்களில் தேர்ச்சி பெறுவது முன்னணியில் இருப்பதற்கும் விதிவிலக்கான பயனர் அனுபவங்களை வழங்குவதற்கும் அவசியமாகிறது.

ஆதாரங்கள்