தமிழ்

கிளைன்ட்-சைட் மட்டும் பயன்பாடுகளுக்கான Next.js ஸ்டேடிக் எக்ஸ்போர்ட்ஸ் பற்றி அறியுங்கள். வேகமான, பாதுகாப்பான மற்றும் உலகளாவிய வலை அனுபவங்களை உருவாக்க அதன் நன்மைகள், வரம்புகள், அமைப்பு மற்றும் மேம்பட்ட நுட்பங்களைக் கற்றுக்கொள்ளுங்கள்.

Next.js ஸ்டேடிக் எக்ஸ்போர்ட்ஸ்: கிளைன்ட்-சைட் மட்டும் பயன்பாடுகளை உருவாக்குதல்

Next.js என்பது ஒரு சக்திவாய்ந்த ரியாக்ட் ஃபிரேம்வொர்க் ஆகும், இது டெவலப்பர்களை செயல்திறன் மிக்க, அளவிடக்கூடிய மற்றும் SEO-நட்பு வலைப் பயன்பாடுகளை உருவாக்க உதவுகிறது. Next.js அதன் சர்வர்-சைட் ரெண்டரிங் (SSR) மற்றும் ஸ்டேடிக் சைட் ஜெனரேஷன் (SSG) திறன்களுக்காகப் புகழ்பெற்றிருந்தாலும், ஸ்டேடிக் எக்ஸ்போர்ட்ஸ் பயன்படுத்தி கிளைன்ட்-சைட் மட்டும் பயன்பாடுகளை உருவாக்கும் நெகிழ்வுத்தன்மையையும் இது வழங்குகிறது. இந்த அணுகுமுறை, முற்றிலும் கிளைன்ட்-சைட் பயன்பாட்டைப் பயன்படுத்தும்போது Next.js இன் கருவிகள் மற்றும் கட்டமைப்பின் நன்மைகளைப் பயன்படுத்த உங்களை அனுமதிக்கிறது. இந்த இடுகை, Next.js ஸ்டேடிக் எக்ஸ்போர்ட்ஸ் மூலம் கிளைன்ட்-சைட் மட்டும் பயன்பாடுகளை உருவாக்குவது பற்றி நீங்கள் தெரிந்து கொள்ள வேண்டிய அனைத்தையும், அதன் நன்மைகள், வரம்புகள், அமைவு செயல்முறை மற்றும் மேம்பட்ட நுட்பங்களை உள்ளடக்கி வழிகாட்டும்.

Next.js ஸ்டேடிக் எக்ஸ்போர்ட்ஸ் என்றால் என்ன?

Next.js இல் ஸ்டேடிக் எக்ஸ்போர்ட்ஸ் என்பது, பில்ட் செயல்முறையின் போது உங்கள் பயன்பாட்டின் முழுமையான ஸ்டேடிக் பதிப்பை உருவாக்கும் செயல்முறையைக் குறிக்கிறது. இதன் பொருள் அனைத்து HTML, CSS மற்றும் ஜாவாஸ்கிரிப்ட் கோப்புகளும் முன்பே ரெண்டர் செய்யப்பட்டு, ஒரு ஸ்டேடிக் கோப்பு சேவையகத்திலிருந்து (எ.கா., Netlify, Vercel, AWS S3, அல்லது ஒரு பாரம்பரிய வலை சேவையகம்) நேரடியாக வழங்க தயாராக இருக்கும். சர்வரில் ரெண்டர் செய்யப்படும் பயன்பாடுகளைப் போலல்லாமல், உள்வரும் கோரிக்கைகளைக் கையாள Node.js சர்வர் தேவையில்லை. மாறாக, முழு பயன்பாடும் ஸ்டேடிக் சொத்துக்களின் தொகுப்பாக வழங்கப்படுகிறது.

கிளைன்ட்-சைட் மட்டும் பயன்பாட்டை இலக்காகக் கொள்ளும்போது, அனைத்து டைனமிக் நடத்தைகளும் கிளைன்ட்-சைட் ஜாவாஸ்கிரிப்ட் மூலம் கையாளப்படும் என்ற அனுமானத்துடன் Next.js இந்த ஸ்டேடிக் சொத்துக்களை உருவாக்குகிறது. இது குறிப்பாக ஒற்றைப் பக்க பயன்பாடுகளுக்கு (SPAs) பயனுள்ளதாக இருக்கும், அவை முதன்மையாக கிளைன்ட்-சைட் ரூட்டிங், API அழைப்புகள் மற்றும் பயனர் தொடர்புகளைச் சார்ந்துள்ளன.

கிளைன்ட்-சைட் பயன்பாடுகளுக்கு ஸ்டேடிக் எக்ஸ்போர்ட்ஸை ஏன் தேர்வு செய்ய வேண்டும்?

Next.js ஸ்டேடிக் எக்ஸ்போர்ட்ஸ் மூலம் கிளைன்ட்-சைட் பயன்பாடுகளை உருவாக்குவது பல ஈர்க்கக்கூடிய நன்மைகளை வழங்குகிறது:

ஸ்டேடிக் எக்ஸ்போர்ட்ஸின் வரம்புகள்

ஸ்டேடிக் எக்ஸ்போர்ட்ஸ் பல நன்மைகளை வழங்கினாலும், அவற்றின் வரம்புகளைப் பற்றி அறிந்திருப்பது முக்கியம்:

ஸ்டேடிக் எக்ஸ்போர்ட்ஸிற்காக Next.js-ஐ அமைத்தல்

Next.js-ஐ ஸ்டேடிக் எக்ஸ்போர்ட்ஸிற்காக எப்படி அமைப்பது என்பதற்கான படிப்படியான வழிகாட்டி இங்கே:

1. ஒரு புதிய Next.js ப்ராஜெக்டை உருவாக்கவும்

உங்களிடம் ஏற்கனவே Next.js ப்ராஜெக்ட் இல்லையென்றால், பின்வரும் கட்டளையைப் பயன்படுத்தி ஒன்றை உருவாக்கவும்:

npx create-next-app my-client-app

அமைவு செயல்முறையின் போது உங்கள் தேவைகளுக்கு மிகவும் பொருத்தமான விருப்பங்களைத் தேர்வுசெய்யவும் (எ.கா., TypeScript, ESLint).

2. `next.config.js` கோப்பை உள்ளமைக்கவும்

உங்கள் ப்ராஜெக்டின் ரூட்டில் உள்ள `next.config.js` கோப்பைத் திறந்து பின்வரும் உள்ளமைவைச் சேர்க்கவும்:

/** @type {import('next').NextConfig} */
const nextConfig = {
  output: 'export',
  trailingSlash: true,
  // Optional: Change links `/me` -> `/me/` and emit `/me.html` -> `/me/index.html`
  // see https://nextjs.org/docs/app/api-reference/next-config#trailing-slash
  // experimental:
  //  {appDir: false}
}

module.exports = nextConfig

`output: 'export'` என்ற விருப்பம் Next.js-க்கு உங்கள் பயன்பாட்டின் ஸ்டேடிக் எக்ஸ்போர்ட்டை உருவாக்கச் சொல்கிறது. `trailingSlash: true` என அமைப்பது பொதுவாக சீரான URL கட்டமைப்பை உறுதிப்படுத்தவும், சாத்தியமான SEO சிக்கல்களைத் தவிர்க்கவும் பரிந்துரைக்கப்படுகிறது.

3. `package.json` கோப்பைப் புதுப்பிக்கவும்

ஸ்டேடிக் எக்ஸ்போர்ட்ஸிற்கான பில்ட் ஸ்கிரிப்டைச் சேர்க்க உங்கள் `package.json` கோப்பின் `scripts` பகுதியை மாற்றியமைக்கவும்:

{
  "scripts": {
    "dev": "next dev",
    "build": "next build && next export",
    "start": "next start",
    "lint": "next lint"
  }
}

இந்த ஸ்கிரிப்ட் முதலில் உங்கள் Next.js பயன்பாட்டை பில்ட் செய்து, பின்னர் அதை ஒரு ஸ்டேடிக் டைரக்டரிக்கு எக்ஸ்போர்ட் செய்யும்.

4. கிளைன்ட்-சைட் ரூட்டிங்கைச் செயல்படுத்தவும்

நீங்கள் ஒரு கிளைன்ட்-சைட் பயன்பாட்டை உருவாக்குவதால், `next/router` மாட்யூல் அல்லது `react-router-dom` போன்ற மூன்றாம் தரப்பு நூலகத்தைப் பயன்படுத்தி கிளைன்ட்-சைட் ரூட்டிங்கைச் செயல்படுத்த வேண்டும். இங்கே `next/router` ஐப் பயன்படுத்தும் ஒரு உதாரணம்:

import { useRouter } from 'next/router';
import Link from 'next/link';

function HomePage() {
  const router = useRouter();

  const handleClick = () => {
    router.push('/about');
  };

  return (
    <div>
      <h1>Home Page</h1>
      <p>Welcome to the home page!</p>
      <button onClick={handleClick}>Go to About Page</button>

      <Link href="/about">
         <a>Go to About Page (using Link)</a>
      </Link>
    </div>
  );
}

export default HomePage;

மென்மையான கிளைன்ட்-சைட் மாற்றங்களை உறுதி செய்ய, உள் வழிசெலுத்தலுக்கு `next/link` இலிருந்து `Link` கூறனைப் பயன்படுத்த நினைவில் கொள்ளுங்கள்.

5. கிளைன்ட்-சைடில் தரவு பெறுதலைக் கையாளவும்

ஒரு கிளைன்ட்-சைட் பயன்பாட்டில், அனைத்து தரவு பெறுதலும் `useEffect` அல்லது `useState` ஹூக்ஸ் போன்ற நுட்பங்களைப் பயன்படுத்தி கிளைன்ட்-சைடில் செய்யப்பட வேண்டும். உதாரணமாக:

import { useState, useEffect } from 'react';

function DataPage() {
  const [data, setData] = useState(null);
  const [loading, setLoading] = useState(true);
  const [error, setError] = useState(null);

  useEffect(() => {
    async function fetchData() {
      try {
        const response = await fetch('https://api.example.com/data');
        if (!response.ok) {
          throw new Error(`HTTP error! status: ${response.status}`);
        }
        const jsonData = await response.json();
        setData(jsonData);
      } catch (e) {
        setError(e);
      } finally {
        setLoading(false);
      }
    }

    fetchData();
  }, []);

  if (loading) return <p>Loading...</p>;
  if (error) return <p>Error: {error.message}</p>;
  if (!data) return <p>No data to display</p>;

  return (
    <div>
      <h1>Data Page</h1>
      <pre>{JSON.stringify(data, null, 2)}</pre>
    </div>
  );
}

export default DataPage;

6. உங்கள் பயன்பாட்டை பில்ட் மற்றும் எக்ஸ்போர்ட் செய்யவும்

ஸ்டேடிக் எக்ஸ்போர்ட்டை உருவாக்க பில்ட் ஸ்கிரிப்டை இயக்கவும்:

npm run build

இது உங்கள் பயன்பாட்டிற்கான ஸ்டேடிக் HTML, CSS, மற்றும் ஜாவாஸ்கிரிப்ட் கோப்புகளைக் கொண்ட ஒரு `out` (அல்லது Next.js பதிப்பைப் பொறுத்து `public`) டைரக்டரியை உருவாக்கும்.

7. உங்கள் ஸ்டேடிக் தளத்தை டெப்ளாய் செய்யவும்

நீங்கள் இப்போது `out` டைரக்டரியின் உள்ளடக்கங்களை Netlify, Vercel, AWS S3, அல்லது GitHub Pages போன்ற ஒரு ஸ்டேடிக் ஹோஸ்டிங் வழங்குநரிடம் டெப்ளாய் செய்யலாம். பெரும்பாலான வழங்குநர்கள் செயல்முறையை தானியக்கமாக்க எளிய இழுத்து-விடுதல் டெப்ளாய்மென்ட் அல்லது கட்டளை-வரி கருவிகளை வழங்குகிறார்கள்.

கிளைன்ட்-சைட் Next.js பயன்பாடுகளுக்கான மேம்பட்ட நுட்பங்கள்

உங்கள் கிளைன்ட்-சைட் Next.js பயன்பாடுகளை மேம்படுத்த சில மேம்பட்ட நுட்பங்கள் இங்கே:

1. கோட் ஸ்ப்ளிட்டிங் மற்றும் லேசி லோடிங்

உங்கள் கோடை தேவைக்கேற்ப ஏற்றப்படும் சிறிய துண்டுகளாகப் பிரிக்க டைனமிக் இம்போர்ட்களை (`import()`) பயன்படுத்தவும். இது ஆரம்ப ஏற்றுதல் நேரங்களை கணிசமாக மேம்படுத்தும், குறிப்பாக பெரிய பயன்பாடுகளுக்கு.

import React, { Suspense } from 'react';

const MyComponent = React.lazy(() => import('./MyComponent'));

function MyPage() {
  return (
    <Suspense fallback={<div>Loading...</div>}>
      <MyComponent />
    </Suspense>
  );
}

2. படங்களை மேம்படுத்துதல்

படங்களை மேம்படுத்த `next/image` கூறனைப் பயன்படுத்தவும். இந்த கூறு தானாகவே வெவ்வேறு சாதனங்கள் மற்றும் திரை அளவுகளுக்கு படங்களை மேம்படுத்துகிறது, செயல்திறன் மற்றும் பயனர் அனுபவத்தை மேம்படுத்துகிறது. இது லேசி லோடிங், ரெஸ்பான்சிவ் படங்கள், மற்றும் பல்வேறு பட வடிவங்களை ஆதரிக்கிறது.

import Image from 'next/image';

function MyComponent() {
  return (
    <Image
      src="/images/my-image.jpg"
      alt="My Image"
      width={500}
      height={300}
    />
  );
}

3. சர்வீஸ் வொர்க்கர்கள்

ஆஃப்லைன் செயல்பாட்டை இயக்கவும் செயல்திறனை மேம்படுத்தவும் ஒரு சர்வீஸ் வொர்க்கரைச் செயல்படுத்தவும். ஒரு சர்வீஸ் வொர்க்கர் என்பது பின்னணியில் இயங்கும் ஒரு ஸ்கிரிப்ட் ஆகும், இது நெட்வொர்க் கோரிக்கைகளை இடைமறிக்கலாம், சொத்துக்களை கேச் செய்யலாம், மற்றும் புஷ் அறிவிப்புகளை அனுப்பலாம். `next-pwa` போன்ற நூலகங்கள் உங்கள் Next.js பயன்பாட்டில் ஒரு சர்வீஸ் வொர்க்கரைச் சேர்க்கும் செயல்முறையை எளிதாக்கலாம்.

4. சூழல் மாறிகள்

வெவ்வேறு சூழல்களுக்கு (எ.கா., டெவலப்மென்ட், ஸ்டேஜிங், புரொடக்ஷன்) உங்கள் பயன்பாட்டை உள்ளமைக்க சூழல் மாறிகளைப் பயன்படுத்தவும். Next.js `.env` கோப்பு மற்றும் `process.env` ஆப்ஜெக்ட் மூலம் சூழல் மாறிகளுக்கு உள்ளமைக்கப்பட்ட ஆதரவை வழங்குகிறது. கிளைன்ட்-சைட் கோடில் முக்கியமான தகவல்களை வெளிப்படுத்தாமல் கவனமாக இருங்கள். வெளிப்படுத்த பாதுகாப்பான உள்ளமைவு அமைப்புகளுக்கு முதன்மையாக சூழல் மாறிகளைப் பயன்படுத்தவும்.

5. கண்காணிப்பு மற்றும் பகுப்பாய்வு

செயல்திறன் அளவீடுகளைக் கண்காணிக்கவும், பிழைகளைக் கண்டறியவும், மற்றும் பயனர் நடத்தை பற்றிய நுண்ணறிவுகளைப் பெறவும் ஒரு கண்காணிப்பு மற்றும் பகுப்பாய்வு சேவையை (எ.கா., Google Analytics, Sentry, அல்லது New Relic) ஒருங்கிணைக்கவும். இது உங்கள் பயன்பாட்டை மேம்படுத்தவும் காலப்போக்கில் பயனர் அனுபவத்தை மேம்படுத்தவும் உதவும்.

6. கிளைன்ட்-சைட் பயன்பாடுகளில் SEO-வை மேம்படுத்துதல்

ஸ்டேடிக் எக்ஸ்போர்ட்ஸ் ஒரு ஆரம்ப HTML கட்டமைப்பை வழங்கினாலும், கிளைன்ட்-சைட்-கனமான பயன்பாடுகளில் சிறந்த SEO-விற்கு இந்த உத்திகளைக் கருத்தில் கொள்ளுங்கள்:

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

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

சரியான அணுகுமுறையைத் தேர்ந்தெடுத்தல்: ஸ்டேடிக் எக்ஸ்போர்ட் vs. சர்வர்-சைட் ரெண்டரிங்

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

நிஜ உலக உதாரணங்கள்

Next.js ஸ்டேடிக் எக்ஸ்போர்ட்ஸ் மூலம் பயனடையக்கூடிய சில நிஜ உலக உதாரணங்கள் இங்கே:

உதாரணம்: சர்வதேச நிறுவனத்தின் இணையதளம்

நியூயார்க், லண்டன் மற்றும் டோக்கியோவில் அலுவலகங்களைக் கொண்ட ஒரு நிறுவனத்தை கற்பனை செய்து பாருங்கள். அவர்கள் ஆங்கிலம், பிரஞ்சு மற்றும் ஜப்பானிய மொழிகளில் ஒரு இணையதளத்தை விரும்புகிறார்கள். ஒரு Next.js ஸ்டேடிக் எக்ஸ்போர்ட், ஒரு ஹெட்லெஸ் CMS மற்றும் i18n நூலகங்களுடன் இணைந்து, சிறந்ததாக இருக்கும். CMS மொழிபெயர்க்கப்பட்ட உள்ளடக்கத்தைச் சேமிக்கும், Next.js அதை கிளைன்ட்-சைடில் பெற்று ரெண்டர் செய்யும், மற்றும் ஸ்டேடிக் தளத்தை உலகளவில் ஒரு CDN இல் வேகமான அணுகலுக்காக டெப்ளாய் செய்யலாம்.

முடிவுரை

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