Rumah > hujung hadapan web > tutorial js > Petua Terbaik untuk Mencipta Cangkuk Tersuai dalam React

Petua Terbaik untuk Mencipta Cangkuk Tersuai dalam React

DDD
Lepaskan: 2024-09-13 06:15:36
asal
1002 orang telah melayarinya

Best Tips for Creating Custom Hooks in React

Cangkuk Tersuai React ialah alat yang berkesan untuk mengalih keluar fungsi boleh guna semula daripada komponen anda. Mereka menyokong DRY (Don't Repeat Yourself), kebolehselenggaraan dan kebersihan dalam kod anda. Tetapi membangunkan cangkuk tersuai yang berguna memerlukan pemahaman yang kukuh tentang idea asas React dan prosedur yang disyorkan. Dalam siaran ini, kami akan membincangkan beberapa strategi terbaik untuk membangunkan cangkuk tersuai dalam React, dengan contoh untuk menerangkan cara menerapkannya dengan cekap.

1. Fahami Tujuan Mata Kail

Sebelum terjun ke dalam mencipta mata kail tersuai, adalah penting untuk memahami apa itu mata kail dan sebab ia wujud. Cangkuk membolehkan anda menggunakan keadaan dan ciri React lain dalam komponen berfungsi. Cangkuk tersuai membolehkan anda mengekstrak logik komponen ke dalam fungsi boleh guna semula, yang boleh dikongsi merentas berbilang komponen.

Contoh: Cangkuk Tersuai Asas

Berikut ialah contoh mudah cangkuk tersuai yang menguruskan kaunter:

import { useState } from 'react';

function useCounter(initialValue = 0) {
  const [count, setCount] = useState(initialValue);

  const increment = () => setCount(prevCount => prevCount + 1);
  const decrement = () => setCount(prevCount => prevCount - 1);
  const reset = () => setCount(initialValue);

  return { count, increment, decrement, reset };
}

// Usage in a component
// const { count, increment, decrement, reset } = useCounter(10);
Salin selepas log masuk

2. Ikuti Konvensyen Penamaan

React mempunyai konvensyen di mana cangkuk tersuai harus bermula dengan perkataan "gunakan". Ini bukan sekadar pilihan gaya—React bergantung pada konvensyen ini untuk menggunakan peraturan cangkuk secara automatik (seperti tidak memanggilnya secara bersyarat).

Petua: Sentiasa mulakan cangkuk tersuai anda dengan menggunakan untuk memastikan React tahu itu cangkuk.

3. Pastikan Cangkuk Tulen

Cakuk tersuai haruslah fungsi tulen, bermakna ia tidak sepatutnya mempunyai kesan sampingan seperti mengubah suai pembolehubah global atau berinteraksi dengan sistem luaran secara langsung. Jika kesan sampingan diperlukan, seperti membuat panggilan API, ia harus dikendalikan dalam cangkuk menggunakan cangkuk React terbina dalam seperti useEffect.

Contoh: Cangkuk dengan Kesan Sampingan

import { useState, useEffect } from 'react';

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

  useEffect(() => {
    const fetchData = async () => {
      try {
        const response = await fetch(url);
        const result = await response.json();
        setData(result);
      } catch (err) {
        setError(err);
      } finally {
        setLoading(false);
      }
    };

    fetchData();
  }, [url]);

  return { data, error, loading };
}

// Usage in a component
// const { data, error, loading } = useFetchData('https://api.example.com/data');
Salin selepas log masuk

4. Manfaatkan Cangkuk Sedia Ada
Apabila membuat cangkuk tersuai, pastikan untuk memanfaatkan cangkuk React sedia ada seperti useState, useEffect, useContext dan lain-lain. Ini memastikan cangkuk tersuai anda boleh digubah dan boleh berfungsi dengan lancar dengan ciri terbina dalam React.

Contoh: Menggabungkan Cangkuk

Berikut ialah cangkuk tersuai yang menggabungkan useState dan useEffect untuk mengurus storan setempat:

import { useState, useEffect } from 'react';

function useLocalStorage(key, initialValue) {
  const [storedValue, setStoredValue] = useState(() => {
    try {
      const item = window.localStorage.getItem(key);
      return item ? JSON.parse(item) : initialValue;
    } catch (error) {
      console.error(error);
      return initialValue;
    }
  });

  useEffect(() => {
    try {
      window.localStorage.setItem(key, JSON.stringify(storedValue));
    } catch (error) {
      console.error(error);
    }
  }, [key, storedValue]);

  return [storedValue, setStoredValue];
}

// Usage in a component
// const [name, setName] = useLocalStorage('name', 'John Doe');
Salin selepas log masuk

5. Kebolehgunaan semula dan Komposisi

Salah satu sebab utama untuk mencipta cangkuk tersuai adalah untuk menggalakkan kebolehgunaan semula. Cangkuk tersuai yang baik seharusnya boleh digunakan merentasi berbilang komponen tanpa memerlukan pengubahsuaian yang ketara. Selain itu, cangkuk boleh digubah bersama untuk membina logik yang lebih kompleks.

Petua: Fokus pada mengekstrak logik yang mungkin akan digunakan semula merentas berbilang komponen.

6. Dokumen Cangkuk Anda

Seperti mana-mana kod, cangkuk tersuai anda harus didokumentasikan dengan baik. Sertakan ulasan yang menerangkan perkara yang dilakukan oleh cangkuk, parameter yang diterimanya, perkara yang dikembalikan dan sebarang kesan sampingan yang mungkin ada. Ini memudahkan pembangun lain (dan masa depan anda) untuk memahami dan menggunakan cangkuk anda dengan betul.

Contoh: Mendokumentasikan Cangkuk

/**
 * useCounter
 * 
 * A custom hook to manage a counter.
 *
 * @param {number} initialValue - Initial value of the counter.
 * @returns {object} { count, increment, decrement, reset } - Current count and functions to modify it.
 */
function useCounter(initialValue = 0) {
  // Implementation
}
Salin selepas log masuk

7. Uji Cangkuk Anda

Ujian adalah penting untuk memastikan cangkuk tersuai anda berkelakuan seperti yang diharapkan. Gunakan perpustakaan ujian seperti react-hooks-testing-library atau Jest untuk menulis ujian unit untuk cangkuk anda.

Contoh: Ujian Asas untuk Cangkuk

import { renderHook, act } from '@testing-library/react-hooks';
import useCounter from './useCounter';

test('should increment and decrement counter', () => {
  const { result } = renderHook(() => useCounter(0));

  act(() => {
    result.current.increment();
  });

  expect(result.current.count).toBe(1);

  act(() => {
    result.current.decrement();
  });

  expect(result.current.count).toBe(0);
});
Salin selepas log masuk

Satu teknik berkesan untuk mengabstrak dan menggunakan semula fungsi sepanjang aplikasi anda ialah menggunakan cangkuk tersuai dalam React. Anda boleh membina cangkuk yang boleh dipercayai dan boleh diselenggara yang akan meningkatkan proses pembangunan React anda dengan memahami tujuan cangkuk, mematuhi konvensyen penamaan, memastikan cangkuk tulen, menggunakan cangkuk sedia ada, menjamin kebolehgunaan semula, mendokumentasikan dan menguji.

Atas ialah kandungan terperinci Petua Terbaik untuk Mencipta Cangkuk Tersuai dalam React. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan