தமிழ்

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

ரியாக்டுடன் டைப்ஸ்கிரிப்ட்: அளவிடக்கூடிய மற்றும் பராமரிக்கக்கூடிய பயன்பாடுகளுக்கான சிறந்த நடைமுறைகள்

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

ரியாக்டுடன் டைப்ஸ்கிரிப்டை ஏன் பயன்படுத்த வேண்டும்?

சிறந்த நடைமுறைகளுக்குள் செல்வதற்கு முன், ரியாக்ட் மேம்பாட்டிற்கு டைப்ஸ்கிரிப்ட் ஏன் ஒரு மதிப்புமிக்க கூடுதலாக இருக்கிறது என்பதைப் புரிந்துகொள்வோம்:

ஒரு டைப்ஸ்கிரிப்ட் ரியாக்ட் திட்டத்தை அமைத்தல்

Create React App-ஐப் பயன்படுத்துதல்

ஒரு புதிய டைப்ஸ்கிரிப்ட் ரியாக்ட் திட்டத்தைத் தொடங்குவதற்கான எளிதான வழி டைப்ஸ்கிரிப்ட் டெம்ப்ளேட்டுடன் Create React App-ஐப் பயன்படுத்துவதுதான்:

npx create-react-app my-typescript-react-app --template typescript

இந்த கட்டளை தேவையான சார்புகள் மற்றும் ஒரு tsconfig.json கோப்பு உட்பட, டைப்ஸ்கிரிப்ட் உள்ளமைக்கப்பட்ட ஒரு அடிப்படை ரியாக்ட் திட்டத்தை அமைக்கிறது.

tsconfig.json ஐ உள்ளமைத்தல்

tsconfig.json கோப்பு உங்கள் டைப்ஸ்கிரிப்ட் உள்ளமைவின் இதயமாகும். இங்கே சில பரிந்துரைக்கப்பட்ட அமைப்புகள் உள்ளன:

{
  "compilerOptions": {
    "target": "es5",
    "lib": [
      "dom",
      "dom.iterable",
      "esnext"
    ],
    "allowJs": true,
    "skipLibCheck": true,
    "esModuleInterop": true,
    "allowSyntheticDefaultImports": true,
    "strict": true,
    "forceConsistentCasingInFileNames": true,
    "module": "esnext",
    "moduleResolution": "node",
    "resolveJsonModule": true,
    "isolatedModules": true,
    "noEmit": true,
    "jsx": "react-jsx"
  },
  "include": [
    "src"
  ]
}

கருத்தில் கொள்ள வேண்டிய முக்கிய விருப்பங்கள்:

டைப்ஸ்கிரிப்ட்டுடன் ரியாக்ட் கூறுகளுக்கான சிறந்த நடைமுறைகள்

கூறு Props-களுக்கு டைப்பிங் செய்தல்

ரியாக்டுடன் டைப்ஸ்கிரிப்டைப் பயன்படுத்துவதில் மிக முக்கியமான அம்சங்களில் ஒன்று உங்கள் கூறு Props-களை சரியாக டைப்பிங் செய்வதாகும். Props ஆப்ஜெக்ட்டின் வடிவத்தை வரையறுக்க இடைமுகங்கள் அல்லது டைப் மாற்றுப்பெயர்களைப் பயன்படுத்தவும்.

interface MyComponentProps {
  name: string;
  age?: number; // Optional prop
  onClick: () => void;
}

const MyComponent: React.FC = ({ name, age, onClick }) => {
  return (
    

வணக்கம், {name}!

{age &&

உங்களுக்கு {age} வயது.

}
); };

React.FC<MyComponentProps>-ஐப் பயன்படுத்துவது கூறு ஒரு செயல்பாட்டுக் கூறு என்பதையும், Props-கள் சரியாக டைப் செய்யப்பட்டுள்ளன என்பதையும் உறுதி செய்கிறது.

கூறு ஸ்டேட்டிற்கு டைப்பிங் செய்தல்

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

interface MyComponentState {
  count: number;
}

class MyComponent extends React.Component<{}, MyComponentState> {
  state: MyComponentState = {
    count: 0
  };

  handleClick = () => {
    this.setState({
      count: this.state.count + 1
    });
  };

  render() {
    return (
      

எண்ணிக்கை: {this.state.count}

); } }

useState ஹூக்கைப் பயன்படுத்தும் செயல்பாட்டுக் கூறுகளுக்கு, டைப்ஸ்கிரிப்ட் பெரும்பாலும் ஸ்டேட் மாறியின் வகையை ஊகிக்க முடியும், ஆனால் நீங்கள் அதை வெளிப்படையாகவும் வழங்கலாம்:

import React, { useState } from 'react';

const MyComponent: React.FC = () => {
  const [count, setCount] = useState(0);

  return (
    

எண்ணிக்கை: {count}

); };

டைப் காவலர்களைப் பயன்படுத்துதல்

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

interface Circle {
  kind: "circle";
  radius: number;
}

interface Square {
  kind: "square";
  side: number;
}

type Shape = Circle | Square;

function isCircle(shape: Shape): shape is Circle {
  return shape.kind === "circle";
}

function getArea(shape: Shape): number {
  if (isCircle(shape)) {
    return Math.PI * shape.radius ** 2;
  } else {
    return shape.side ** 2;
  }
}

isCircle செயல்பாடு என்பது ஒரு Shape ஒரு Circle ஆக உள்ளதா என்பதை சரிபார்க்கும் ஒரு டைப் காவலர் ஆகும். if பிளாக்கிற்குள், shape ஒரு Circle என்று டைப்ஸ்கிரிப்டுக்குத் தெரியும் மற்றும் அதன் radius பண்பை அணுக உங்களை அனுமதிக்கிறது.

நிகழ்வுகளைக் கையாளுதல்

டைப்ஸ்கிரிப்டுடன் ரியாக்டில் நிகழ்வுகளைக் கையாளும் போது, நிகழ்வு ஆப்ஜெக்ட்டை சரியாக டைப் செய்வது முக்கியம். React நேம்ஸ்பேஸிலிருந்து பொருத்தமான நிகழ்வு வகையைப் பயன்படுத்தவும்.

const MyComponent: React.FC = () => {
  const handleChange = (event: React.ChangeEvent) => {
    console.log(event.target.value);
  };

  return (
    
  );
};

இந்த எடுத்துக்காட்டில், ஒரு இன்புட் உறுப்பில் ஒரு மாற்று நிகழ்விற்கான நிகழ்வு ஆப்ஜெக்ட்டை டைப் செய்ய React.ChangeEvent<HTMLInputElement> பயன்படுத்தப்படுகிறது. இது target பண்பிற்கு அணுகலை வழங்குகிறது, இது ஒரு HTMLInputElement ஆகும்.

திட்ட அமைப்பு

நன்கு கட்டமைக்கப்பட்ட திட்டம் பராமரிப்பு மற்றும் அளவிடுதலுக்கு முக்கியமானது. ஒரு டைப்ஸ்கிரிப்ட் ரியாக்ட் பயன்பாட்டிற்கான பரிந்துரைக்கப்பட்ட திட்ட அமைப்பு இங்கே:

src/
├── components/
│   ├── MyComponent/
│   │   ├── MyComponent.tsx
│   │   ├── MyComponent.module.css
│   │   └── index.ts
├── pages/
│   ├── HomePage.tsx
│   └── AboutPage.tsx
├── services/
│   ├── api.ts
│   └── auth.ts
├── types/
│   ├── index.ts
│   └── models.ts
├── utils/
│   ├── helpers.ts
│   └── constants.ts
├── App.tsx
├── index.tsx
├── react-app-env.d.ts
└── tsconfig.json

முக்கிய குறிப்புகள்:

டைப்ஸ்கிரிப்டுடன் ஹூக்ஸ்களைப் பயன்படுத்துதல்

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

useState

முன்பு காட்டியபடி, useState-ஐப் பயன்படுத்தும் போது நீங்கள் ஸ்டேட் மாறியை வெளிப்படையாக டைப் செய்யலாம்:

import React, { useState } from 'react';

const MyComponent: React.FC = () => {
  const [count, setCount] = useState(0);

  return (
    

எண்ணிக்கை: {count}

); };

useEffect

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

import React, { useState, useEffect } from 'react';

const MyComponent: React.FC = () => {
  const [count, setCount] = useState(0);

  useEffect(() => {
    document.title = `எண்ணிக்கை: ${count}`;
  }, [count]); // 'count'-ஐ சார்பு வரிசையில் சேர்க்கவும்

  return (
    

எண்ணிக்கை: {count}

); };

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

useContext

useContext-ஐப் பயன்படுத்தும் போது, சூழல் மதிப்பிற்கு ஒரு வகையை நீங்கள் வழங்க வேண்டும்.

import React, { createContext, useContext } from 'react';

interface ThemeContextType {
  theme: string;
  toggleTheme: () => void;
}

const ThemeContext = createContext(undefined);

const ThemeProvider: React.FC = ({ children }) => {
  // தீம் தர்க்கத்தை இங்கே செயல்படுத்தவும்
  return (
     {} }}>
      {children}
    
  );
};

const MyComponent: React.FC = () => {
  const { theme, toggleTheme } = useContext(ThemeContext) as ThemeContextType;

  return (
    

தீம்: {theme}

); }; export { ThemeProvider, MyComponent };

சூழல் மதிப்பிற்கு ஒரு வகையை வழங்குவதன் மூலம், useContext ஹூக் சரியான வகையுடன் ஒரு மதிப்பைத் திருப்புகிறது என்பதை உறுதிசெய்கிறீர்கள்.

டைப்ஸ்கிரிப்ட் ரியாக்ட் கூறுகளைச் சோதித்தல்

வலுவான பயன்பாடுகளை உருவாக்குவதில் சோதனை ஒரு முக்கிய பகுதியாகும். டைப்ஸ்கிரிப்ட் டைப் பாதுகாப்பு மற்றும் மேம்பட்ட குறியீடு கவரேஜை வழங்குவதன் மூலம் சோதனையை மேம்படுத்துகிறது.

யூனிட் டெஸ்டிங்

உங்கள் கூறுகளை யூனிட் டெஸ்ட் செய்ய Jest மற்றும் React Testing Library போன்ற சோதனை கட்டமைப்புகளைப் பயன்படுத்தவும்.

// MyComponent.test.tsx
import React from 'react';
import { render, screen, fireEvent } from '@testing-library/react';
import MyComponent from './MyComponent';

describe('MyComponent', () => {
  it('சரியான பெயருடன் கூறை வழங்குகிறது', () => {
    render();
    expect(screen.getByText('வணக்கம், John!')).toBeInTheDocument();
  });

  it('பொத்தானை கிளிக் செய்யும் போது onClick ஹேண்ட்லரை அழைக்கிறது', () => {
    const onClick = jest.fn();
    render();
    fireEvent.click(screen.getByRole('button'));
    expect(onClick).toHaveBeenCalledTimes(1);
  });
});

டைப்ஸ்கிரிப்டின் டைப் சரிபார்ப்பு உங்கள் சோதனைகளில் பிழைகளைக் கண்டறிய உதவுகிறது, அதாவது தவறான props-களை அனுப்புவது அல்லது தவறான நிகழ்வு கையாளுபவர்களைப் பயன்படுத்துவது போன்றவை.

ஒருங்கிணைப்பு சோதனை

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

செயல்திறன் மேம்படுத்தல்

டைப்ஸ்கிரிப்ட் மேம்பாட்டு செயல்முறையின் ஆரம்பத்திலேயே சாத்தியமான செயல்திறன் தடைகளைக் கண்டறிவதன் மூலம் செயல்திறன் மேம்படுத்தலுக்கும் உதவும்.

மெமோசேஷன்

செயல்பாட்டுக் கூறுகளை மெமோஸ் செய்யவும் மற்றும் தேவையற்ற மறு-ரெண்டர்களைத் தடுக்கவும் React.memo-ஐப் பயன்படுத்தவும்.

import React from 'react';

interface MyComponentProps {
  name: string;
}

const MyComponent: React.FC = ({ name }) => {
  console.log('Rendering MyComponent');
  return (
    

வணக்கம், {name}!

); }; export default React.memo(MyComponent);

Props-கள் மாறியிருந்தால் மட்டுமே React.memo கூறை மீண்டும் ரெண்டர் செய்யும். இது குறிப்பாக சிக்கலான கூறுகளுக்கு செயல்திறனை கணிசமாக மேம்படுத்தும்.

குறியீடு பிரித்தல்

உங்கள் குறியீட்டை சிறிய துண்டுகளாகப் பிரிக்கவும் மற்றும் தேவைக்கேற்ப ஏற்றவும் டைனமிக் இறக்குமதிகளைப் பயன்படுத்தவும். இது உங்கள் பயன்பாட்டின் ஆரம்ப ஏற்றுதல் நேரத்தைக் குறைக்கும்.

import React, { Suspense } from 'react';

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

const App: React.FC = () => {
  return (
    ஏற்றுகிறது...
}> ); };

React.lazy உங்களை கூறுகளை டைனமிக்காக இறக்குமதி செய்ய அனுமதிக்கிறது, அவை தேவைப்படும்போது மட்டுமே ஏற்றப்படும். கூறு ஏற்றப்படும்போது Suspense கூறு ஒரு பின்னடைவு UI-ஐ வழங்குகிறது.

முடிவுரை

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

மேலும் ஆதாரங்கள்