Jadual Kandungan
Prasyarat
Sediakan projek React baharu
Kaedah 1: Gunakan UseRef Hook
Contoh
Output
Kaedah 2: Gunakan useReducer Hook
Kaedah 3: Menggunakan Keadaan dan Props
KESIMPULAN
Rumah hujung hadapan web tutorial js Bagaimana untuk membuat tab dalam ReactJS?

Bagaimana untuk membuat tab dalam ReactJS?

Sep 03, 2023 pm 07:13 PM

ReactJS ialah perpustakaan JavaScript yang popular untuk membina antara muka pengguna. Ia menyediakan pendekatan berasaskan komponen kepada pembangunan web yang memudahkan untuk mencipta elemen UI interaktif dan dinamik. Tab ialah corak UI biasa yang digunakan untuk menyusun dan mempersembahkan kandungan dengan cara yang mesra pengguna. Dalam artikel ini, kami akan meneroka cara membuat komponen tab dalam ReactJS.

Prasyarat

Sebelum membaca artikel ini, anda harus mempunyai pemahaman asas tentang ReactJS dan konsep terasnya. Pastikan Node.js dan npm (pengurus pakej nod) dipasang pada komputer anda.

Sediakan projek React baharu

Mula-mula, mari buat projek React baharu menggunakan Aplikasi Buat React, alat yang membantu dalam mencipta projek React baharu dengan struktur projek asas. Buka terminal dan jalankan arahan berikut:

npx create-react-app tab-example
Salin selepas log masuk

Kaedah 1: Gunakan UseRef Hook

useRef cangkuk ialah cangkuk React terbina dalam yang membolehkan kami membuat rujukan boleh ubah kepada elemen dalam komponen. Kita boleh menggunakannya untuk mengurus keadaan tab aktif dalam komponen tab.

Contoh

Dalam kod di bawah, kami mula-mula mengimport kebergantungan yang diperlukan dan menyediakan tab komponen berfungsi kami. Di dalam komponen, kami mencipta cangkuk useRef yang dipanggil tabsRef untuk menyimpan pelbagai objek tab. Ini membolehkan kami merujuk tab dan sifatnya. Kami juga menggunakan cangkuk useState untuk mencipta pembolehubah keadaan yang dipanggil activeTab untuk menjejaki tab yang sedang aktif. Fungsi handleTabClick bertanggungjawab untuk mengemas kini keadaan ActiveTab apabila tab diklik. Fungsi renderTabs berulang pada tatasusunan tabsRef.current dan menjadikan tajuk tab. Ia menambahkan kelas "Aktiviti" pada tab yang sedang aktif. Akhir sekali, kami mengembalikan penanda JSX untuk tab dan kandungan tab aktif.

import React, { useRef, useState } from 'react';
import './Tabs.css'; // Import the CSS file
const Tabs = () => {
  const tabsRef = useRef([{ title: 'Tab 1', content: 'Content 1' },
  { title: 'Tab 2', content: 'Content 2' },
  { title: 'Tab 3', content: 'Content 3' }]);
  const [activeTab, setActiveTab] = useState(0);

  const handleTabClick = (index) => {
    setActiveTab(index);
  };

  const renderTabs = () => {
    return tabsRef.current.map((tab, index) => (
      <div
        key={index}
        onClick={() => handleTabClick(index)}
        className={activeTab === index ? 'active' : ''}
      >
        {tab.title}
      </div>
    ));
  };

  return (
    <div className="tabs-container">
      {renderTabs()}
      <div className="tab-content">
        {tabsRef.current[activeTab].content}
      </div>
    </div>
  );
};

export default Tabs;
  return (
    <div className="tabs-container">
      {renderTabs()}
      <div className="tab-content">
        {tabsRef.current[activeTab].content}
      </div>
    </div>
  );
};

export default Tabs;
Salin selepas log masuk

Output

如何在 ReactJS 中创建选项卡?

Kaedah 2: Gunakan useReducer Hook

useReducer hook ialah satu lagi cangkuk React terbina dalam yang menyediakan cara untuk mengurus logik keadaan kompleks dengan cara yang lebih teratur. Kami boleh menggunakan cangkuk ini untuk mengendalikan perubahan keadaan tab.

Contoh

Dalam kod di bawah, kami memulakan objek keadaan dengan tatasusunan "tab" kosong dan menetapkan sifat "activeTab" kepada 0. Dengan memulakan objek keadaan dengan betul, kami memastikan tatasusunan "state.tabs" tidak ditakrifkan, membolehkan kami memetakannya dan mengakses objek tab dan sifatnya.

Sintaks "?.content" yang digunakan dalam div "tab-content" memastikan bahawa sifat kandungan hanya diakses apabila objek tab semasa ditakrifkan. Ini menghalang ralat semasa menukar tab.

Anda boleh menyesuaikan pembentangan tajuk tab dan kandungan berdasarkan keperluan reka bentuk khusus anda.

import React, { useReducer } from 'react';

const reducer = (state, action) => {
  switch (action.type) {
    case 'SET_ACTIVE_TAB':
      return { ...state, activeTab: action.payload };
    default:
      return state;
  }
};

const Tabs = () => {
  const [state, dispatch] = useReducer(reducer, { tabs: [{ title: 'Tab 1', content: 'Content 1' },
  { title: 'Tab 2', content: 'Content 2' },
  { title: 'Tab 3', content: 'Content 3' }
], activeTab: 0 });

  const handleTabClick = (index) => {
    dispatch({ type: 'SET_ACTIVE_TAB', payload: index });
  };

  const renderTabs = () => {
    return state.tabs.map((tab, index) => (
      <div
        key={index}
        onClick={() => handleTabClick(index)}
        className={state.activeTab === index ? 'active' : ''}
      >
        {tab.title}
      </div>
    ));
  };

  return (
    <div className="tabs-container">
      {renderTabs()}
      <div className="tab-content">{state.tabs[state.activeTab]?.content}</div>
    </div>
  );
};

export default Tabs;
Salin selepas log masuk

Output

如何在 ReactJS 中创建选项卡?

Kaedah 3: Menggunakan Keadaan dan Props

Kaedah ketiga melibatkan penggunaan keadaan dan sifat komponen untuk mengurus tab aktif. Kaedah ini lebih sesuai untuk kes mudah di mana logik tab tidak terlalu kompleks.

Contoh

Dalam kod di bawah, kami mentakrifkan tatasusunan "tab" dalam komponen tab untuk menyediakan data yang diperlukan untuk tajuk dan kandungan tab. Dengan mentakrifkan tatasusunan "tab" dalam komponen, kami memastikan ia boleh diakses dalam skop komponen. Cangkuk useState digunakan untuk mengurus keadaan tab aktif, dengan nilai awal ditetapkan kepada 0. Fungsi handleTabClick mengemas kini tab aktif apabila tab diklik. Fungsi renderTabs memetakan tatasusunan "tab" dan memaparkan tajuk tab. Kelas "aktif" digunakan pada tab aktif berdasarkan keadaan ActiveTab.

Div kandungan tab memaparkan kandungan tab yang sedang aktif.

import React, { useState } from 'react';

const Tabs = () => {
  const [activeTab, setActiveTab] = useState(0);

  // Define the tabs array within the component
  const tabs = [
    { title: 'Tab 1', content: 'Content 1' },
    { title: 'Tab 2', content: 'Content 2' },
    { title: 'Tab 3', content: 'Content 3' }
  ];

  const handleTabClick = (index) => {
    setActiveTab(index);
  };

  const renderTabs = () => {
    return tabs.map((tab, index) => (
      <div
        key={index}
        onClick={() => handleTabClick(index)}
        className={activeTab === index ? 'active' : ''}
      >
        {tab.title}
      </div>
    ));
  };

  return (
    <div className="tabs-container">
      {renderTabs()}
      <div className="tab-content">{tabs[activeTab]?.content}</div>
    </div>
  );
};

export default Tabs;
Salin selepas log masuk

Output

如何在 ReactJS 中创建选项卡?

KESIMPULAN

Dalam artikel ini, kami membincangkan cara membuat tab dalam Reactjs. Kami memperkenalkan bahawa cangkuk useRef berguna untuk mengurus rujukan boleh ubah, cangkuk useReducer menyediakan pendekatan yang lebih berstruktur untuk pengurusan keadaan, dan kaedah keadaan dan prop sesuai untuk pelaksanaan tab yang lebih mudah. Dengan memahami teknik ini, anda boleh mencipta komponen tab interaktif dan mesra pengguna dalam aplikasi React anda.

Atas ialah kandungan terperinci Bagaimana untuk membuat tab dalam ReactJS?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Arahan sembang dan cara menggunakannya
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana saya membuat dan menerbitkan perpustakaan JavaScript saya sendiri? Bagaimana saya membuat dan menerbitkan perpustakaan JavaScript saya sendiri? Mar 18, 2025 pm 03:12 PM

Artikel membincangkan membuat, menerbitkan, dan mengekalkan perpustakaan JavaScript, memberi tumpuan kepada perancangan, pembangunan, ujian, dokumentasi, dan strategi promosi.

Bagaimanakah saya mengoptimumkan kod JavaScript untuk prestasi dalam penyemak imbas? Bagaimanakah saya mengoptimumkan kod JavaScript untuk prestasi dalam penyemak imbas? Mar 18, 2025 pm 03:14 PM

Artikel ini membincangkan strategi untuk mengoptimumkan prestasi JavaScript dalam pelayar, memberi tumpuan kepada mengurangkan masa pelaksanaan dan meminimumkan kesan pada kelajuan beban halaman.

Apa yang perlu saya lakukan jika saya menghadapi percetakan kod yang dihiasi untuk resit kertas terma depan? Apa yang perlu saya lakukan jika saya menghadapi percetakan kod yang dihiasi untuk resit kertas terma depan? Apr 04, 2025 pm 02:42 PM

Soalan dan penyelesaian yang sering ditanya untuk percetakan tiket kertas terma depan dalam pembangunan front-end, percetakan tiket adalah keperluan umum. Walau bagaimanapun, banyak pemaju sedang melaksanakan ...

Bagaimanakah saya boleh debug kod javascript dengan berkesan menggunakan alat pemaju pelayar? Bagaimanakah saya boleh debug kod javascript dengan berkesan menggunakan alat pemaju pelayar? Mar 18, 2025 pm 03:16 PM

Artikel ini membincangkan debugging JavaScript yang berkesan menggunakan alat pemaju pelayar, memberi tumpuan kepada menetapkan titik putus, menggunakan konsol, dan menganalisis prestasi.

Siapa yang dibayar lebih banyak Python atau JavaScript? Siapa yang dibayar lebih banyak Python atau JavaScript? Apr 04, 2025 am 12:09 AM

Tidak ada gaji mutlak untuk pemaju Python dan JavaScript, bergantung kepada kemahiran dan keperluan industri. 1. Python boleh dibayar lebih banyak dalam sains data dan pembelajaran mesin. 2. JavaScript mempunyai permintaan yang besar dalam perkembangan depan dan stack penuh, dan gajinya juga cukup besar. 3. Faktor mempengaruhi termasuk pengalaman, lokasi geografi, saiz syarikat dan kemahiran khusus.

Bagaimanakah saya menggunakan peta sumber untuk debug kod JavaScript minified? Bagaimanakah saya menggunakan peta sumber untuk debug kod JavaScript minified? Mar 18, 2025 pm 03:17 PM

Artikel ini menerangkan cara menggunakan peta sumber untuk debug JavaScript minifikasi dengan memetakannya kembali ke kod asal. Ia membincangkan membolehkan peta sumber, menetapkan titik putus, dan menggunakan alat seperti Chrome Devtools dan Webpack.

Perbezaan dalam Konsol.Log Output Result: Mengapa kedua -dua panggilan berbeza? Perbezaan dalam Konsol.Log Output Result: Mengapa kedua -dua panggilan berbeza? Apr 04, 2025 pm 05:12 PM

Perbincangan mendalam mengenai punca-punca utama perbezaan dalam output konsol.log. Artikel ini akan menganalisis perbezaan hasil output fungsi Console.log dalam sekeping kod dan menerangkan sebab -sebab di belakangnya. � ...

TypeScript untuk pemula, Bahagian 2: Jenis Data Asas TypeScript untuk pemula, Bahagian 2: Jenis Data Asas Mar 19, 2025 am 09:10 AM

Sebaik sahaja anda telah menguasai tutorial TypeScript peringkat kemasukan, anda harus dapat menulis kod anda sendiri dalam IDE yang menyokong TypeScript dan menyusunnya ke dalam JavaScript. Tutorial ini akan menyelam ke dalam pelbagai jenis data dalam TypeScript. JavaScript mempunyai tujuh jenis data: null, undefined, boolean, nombor, rentetan, simbol (diperkenalkan oleh ES6) dan objek. Typescript mentakrifkan lebih banyak jenis atas dasar ini, dan tutorial ini akan meliputi semuanya secara terperinci. Jenis data null Seperti JavaScript, Null dalam TypeScript

See all articles