தமிழ்

React-இன் useFormStatus ஹூக் பற்றிய ஒரு விரிவான வழிகாட்டி. இது உலகளாவிய பயனர்களுக்காக ஈர்க்கக்கூடிய மற்றும் தகவல் நிறைந்த படிவம் சமர்ப்பிக்கும் அனுபவங்களை உருவாக்க டெவலப்பர்களுக்கு உதவுகிறது.

React useFormStatus: படிவம் சமர்ப்பிக்கும் நிலையை கையாளுதல்

படிவங்கள் எண்ணற்ற வலைப் பயன்பாடுகளின் முதுகெலும்பாக உள்ளன, பயனர்கள் சேவையகங்களுடன் தொடர்பு கொள்வதற்கும் தரவை வழங்குவதற்கும் முதன்மை வழியாக செயல்படுகின்றன. ஒரு மென்மையான மற்றும் தகவல் நிறைந்த படிவம் சமர்ப்பிப்பு செயல்முறையை உறுதி செய்வது நேர்மறையான பயனர் அனுபவங்களை உருவாக்குவதற்கு மிக முக்கியமானது. React 18, useFormStatus என்ற ஒரு சக்திவாய்ந்த ஹூக்கை அறிமுகப்படுத்தியது, இது படிவம் சமர்ப்பிப்பு நிலையின் நிர்வாகத்தை எளிதாக்க வடிவமைக்கப்பட்டுள்ளது. இந்த வழிகாட்டி useFormStatus-இன் ஒரு விரிவான கண்ணோட்டத்தை வழங்குகிறது, அதன் அம்சங்கள், பயன்பாட்டு வழக்குகள் மற்றும் உலகளாவிய பார்வையாளர்களுக்காக அணுகக்கூடிய மற்றும் ஈர்க்கக்கூடிய படிவங்களை உருவாக்குவதற்கான சிறந்த நடைமுறைகளை ஆராய்கிறது.

React useFormStatus என்றால் என்ன?

useFormStatus என்பது ஒரு ரியாக்ட் ஹூக் ஆகும், இது ஒரு படிவத்தின் சமர்ப்பிப்பு நிலை குறித்த தகவல்களை வழங்குகிறது. இது சர்வர் செயல்களுடன் (server actions) தடையின்றி வேலை செய்ய வடிவமைக்கப்பட்டுள்ளது, இது உங்கள் ரியாக்ட் கூறுகளிலிருந்து நேரடியாக சர்வர் பக்க தர்க்கத்தை இயக்க உங்களை அனுமதிக்கும் ஒரு அம்சமாகும். இந்த ஹூக், படிவத்தின் நிலுவையில் உள்ள நிலை (pending state), தரவு மற்றும் சமர்ப்பிப்பின் போது ஏற்பட்ட ஏதேனும் பிழைகள் பற்றிய தகவல்களைக் கொண்ட ஒரு ஆப்ஜெக்டை வழங்குகிறது. இந்தத் தகவல், பயனர்களுக்கு நிகழ்நேர பின்னூட்டத்தை வழங்க உங்களை அனுமதிக்கிறது, அதாவது லோடிங் குறிகாட்டிகளைக் காண்பிப்பது, படிவ உறுப்புகளை முடக்குவது மற்றும் பிழைச் செய்திகளைக் காண்பிப்பது போன்றவை.

சர்வர் செயல்களைப் புரிந்துகொள்வது

useFormStatus-ஐப் பற்றி விரிவாகப் பார்ப்பதற்கு முன், சர்வர் செயல்களைப் புரிந்துகொள்வது அவசியம். சர்வர் செயல்கள் என்பவை சர்வரில் இயங்கும் ασύγχρονος (asynchronous) செயல்பாடுகள் ஆகும், அவை ரியாக்ட் கூறுகளிலிருந்து நேரடியாக அழைக்கப்படலாம். அவை கோப்பின் மேலே 'use server' என்ற வழிகாட்டுதலைப் பயன்படுத்தி வரையறுக்கப்படுகின்றன. சர்வர் செயல்கள் பொதுவாக பின்வரும் பணிகளுக்காகப் பயன்படுத்தப்படுகின்றன:

ஒரு சர்வர் செயலின் எளிய எடுத்துக்காட்டு இங்கே:

// actions.js
'use server';

export async function submitForm(formData) {
  // ஒரு சர்வர் கோரிக்கையைப் பிரதிபலிக்க ஒரு தாமதத்தை உருவகப்படுத்துதல்
  await new Promise(resolve => setTimeout(resolve, 2000));

  const name = formData.get('name');
  const email = formData.get('email');

  if (!name || !email) {
    return { message: 'Please fill in all fields.' };
  }

  // வெற்றிகரமான சமர்ப்பிப்பை உருவகப்படுத்துதல்
  return { message: `Form submitted successfully for ${name}!` };
}

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

useFormStatus எவ்வாறு செயல்படுகிறது

useFormStatus ஹூக் ஒரு படிவத்தை உருவாக்கும் ஒரு கூறுக்குள் பயன்படுத்தப்படுகிறது. இது இறக்குமதி செய்யப்பட்ட சர்வர் செயலுடன் `action` ப்ராப்பைப் பயன்படுத்தும் ஒரு <form> உறுப்புக்குள் பயன்படுத்தப்பட வேண்டும். இந்த ஹூக் பின்வரும் பண்புகளுடன் ஒரு ஆப்ஜெக்டை வழங்குகிறது:

ஒரு ரியாக்ட் கூறில் useFormStatus-ஐ எவ்வாறு பயன்படுத்துவது என்பதற்கான எடுத்துக்காட்டு இங்கே:

'use client'
import { useFormStatus } from 'react-dom';
import { submitForm } from './actions';

function MyForm() {
  const { pending, data, error, action } = useFormStatus();

  return (
    <form action={submitForm}>
      <label htmlFor="name">பெயர்:</label>
      <input type="text" id="name" name="name" disabled={pending} />
      <label htmlFor="email">மின்னஞ்சல்:</label>
      <input type="email" id="email" name="email" disabled={pending} />
      <button type="submit" disabled={pending}>
        {pending ? 'சமர்ப்பிக்கப்படுகிறது...' : 'சமர்ப்பி'}
      </button>
      {error && <p style={{ color: 'red' }}>பிழை: {error.message}</p>}
      {data && data.message && <p style={{ color: 'green' }}>{data.message}</p>}
    </form>
  );
}

export default MyForm;

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

useFormStatus-ஐப் பயன்படுத்துவதன் நன்மைகள்

useFormStatus படிவம் சமர்ப்பிப்பு நிலையை நிர்வகிப்பதில் பல நன்மைகளை வழங்குகிறது:

useFormStatus-ஐப் பயன்படுத்துவதற்கான சிறந்த நடைமுறைகள்

useFormStatus-இன் நன்மைகளை அதிகரிக்க, பின்வரும் சிறந்த நடைமுறைகளைக் கருத்தில் கொள்ளுங்கள்:

useFormStatus-க்கான பயன்பாட்டு வழக்குகள்

useFormStatus பரந்த அளவிலான சூழ்நிலைகளில் பொருந்தும்:

சர்வதேசமயமாக்கலை (i18n) கையாளுதல்

உலகளாவிய பார்வையாளர்களுக்காக படிவங்களை உருவாக்கும்போது, சர்வதேசமயமாக்கல் (i18n) மிக முக்கியமானது. useFormStatus-ஐப் பயன்படுத்தும்போது i18n-ஐ எவ்வாறு கையாள்வது என்பது இங்கே:

i18next உடன் எடுத்துக்காட்டு:

// i18n.js
import i18n from 'i18next';
import { initReactI18next } from 'react-i18next';

import en from './locales/en.json';
import fr from './locales/fr.json';

i18n
  .use(initReactI18next)
  .init({
    resources: {
      en: { translation: en },
      fr: { translation: fr },
    },
    lng: 'en',
    fallbackLng: 'en',
    interpolation: {
      escapeValue: false, // react already safes from xss
    },
  });

export default i18n;

// MyForm.js

import { useTranslation } from 'react-i18next';

function MyForm() {
  const { t } = useTranslation();
  const { pending, data, error, action } = useFormStatus();

  return (
    <form action={submitForm}>
      <label htmlFor="name">{t('name')}:</label>
      <input type="text" id="name" name="name" disabled={pending} />
      <label htmlFor="email">{t('email')}:</label>
      <input type="email" id="email" name="email" disabled={pending} />
      <button type="submit" disabled={pending}>
        {pending ? t('submitting') : t('submit')}
      </button>
      {error && <p style={{ color: 'red' }}>{t('error')}: {t(error.message)}</p>}
      {data && data.message && <p style={{ color: 'green' }}>{t(data.message)}</p>}
    </form>
  );
}

export default MyForm;

அணுகல்தன்மைக் கருத்தாய்வுகள்

படிவங்களை உருவாக்கும்போது அணுகல்தன்மையை உறுதி செய்வது மிக முக்கியம். useFormStatus-ஐப் பயன்படுத்தும்போது உங்கள் படிவங்களை மேலும் அணுகக்கூடியதாக மாற்றுவது எப்படி என்பது இங்கே:

ARIA பண்புகளுடன் எடுத்துக்காட்டு:

function MyForm() {
  const { pending, data, error, action } = useFormStatus();

  return (
    <form action={submitForm}>
      <label htmlFor="name">பெயர்:</label>
      <input
        type="text"
        id="name"
        name="name"
        disabled={pending}
        aria-invalid={!!error} // பிழை உள்ளதா என்பதைக் குறிக்கவும்
        aria-describedby={error ? 'name-error' : null} // பிழைச் செய்தியை இணைக்கவும்
      />
      {error && (
        <p id="name-error" style={{ color: 'red' }} aria-live="polite">{error.message}</p>
      )}
      <label htmlFor="email">மின்னஞ்சல்:</label>
      <input type="email" id="email" name="email" disabled={pending} />
      <button type="submit" disabled={pending}>
        {pending ? 'சமர்ப்பிக்கப்படுகிறது...' : 'சமர்ப்பி'}
      </button>
      {data && data.message && <p style={{ color: 'green' }}>{data.message}</p>}
    </form>
  );
}

அடிப்படை பயன்பாட்டிற்கு அப்பால்: மேம்பட்ட நுட்பங்கள்

useFormStatus-இன் அடிப்படைப் பயன்பாடு நேரடியானது என்றாலும், பல மேம்பட்ட நுட்பங்கள் உங்கள் படிவம் சமர்ப்பிப்பு அனுபவத்தை மேலும் மேம்படுத்தலாம்:

பொதுவான சிக்கல்களைச் சரிசெய்தல்

useFormStatus-ஐப் பயன்படுத்தும்போது, நீங்கள் சில பொதுவான சிக்கல்களை சந்திக்க நேரிடலாம். அவற்றை எவ்வாறு சரிசெய்வது என்பது இங்கே:

useFormStatus-க்கு மாற்றுகள்

useFormStatus ஒரு சக்திவாய்ந்த கருவியாக இருந்தாலும், குறிப்பாக பழைய ரியாக்ட் பதிப்புகளில் அல்லது சிக்கலான படிவ தர்க்கத்தைக் கையாளும்போது, படிவம் சமர்ப்பிப்பு நிலையை நிர்வகிப்பதற்கான மாற்று அணுகுமுறைகள் உள்ளன:

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

முடிவுரை

useFormStatus என்பது ரியாக்ட் சூழல் அமைப்பில் ஒரு மதிப்புமிக்க সংযக்கமாகும், இது படிவம் சமர்ப்பிப்பு நிலையின் நிர்வாகத்தை எளிதாக்குகிறது மற்றும் டெவலப்பர்களை மேலும் ஈர்க்கக்கூடிய மற்றும் தகவல் தரும் பயனர் அனுபவங்களை உருவாக்க உதவுகிறது. அதன் அம்சங்கள், சிறந்த நடைமுறைகள் மற்றும் பயன்பாட்டு வழக்குகளைப் புரிந்துகொள்வதன் மூலம், உலகளாவிய பார்வையாளர்களுக்காக அணுகக்கூடிய, சர்வதேசமயமாக்கப்பட்ட மற்றும் செயல்திறன் மிக்க படிவங்களை உருவாக்க useFormStatus-ஐப் பயன்படுத்தலாம். useFormStatus-ஐ ஏற்றுக்கொள்வது மேம்பாட்டை நெறிப்படுத்துகிறது, பயனர் தொடர்புகளை மேம்படுத்துகிறது, மேலும் இறுதியில் மிகவும் வலுவான மற்றும் பயனர் நட்பான வலைப் பயன்பாடுகளுக்கு பங்களிக்கிறது.

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