Dieser Artikel zeigt, dass eine dynamische Akkordeonkomponente mit React.js erstellt wird. Es ist ein benutzerfreundliches, platzsparendes UI-Element ideal für Web- und Mobile-Apps.
Voraussetzungen:
Projekt -Setup:
npx create-react-app accordion-component
/accordion-component/
enthält alle erforderlichen Dateien. Projektstruktur und anfängliches Setup:
/accordion-component/
in Ihrem Code -Editor. npm run start
(vom Anschluss). /src/AccordionComponent/
Ordner. Erstellen Sie Accordion.js
(für die Komponente) und AccordionData.js
(für die Datenspeicherung). App.js
importieren und rendern Accordion.js
: import './App.css'; import Accordion from './AccordionComponent/Accordion'; function App() { return ( <div className="App"> <Accordion /> </div> ); } export default App;
App.css
und index.css
. Akkordeonkomponentenstruktur:
Accordion.js
erstellen Sie die AccordionItem
-Komponente: import React from 'react'; const AccordionItem = () => { return (<h1>Accordion</h1>); }; const Accordion = () => { return ( <div> <AccordionItem /> </div> ); }; export default Accordion;
AccordionData.js
: const data = [ { question: 'What are accordion components?', answer: '...' }, { question: 'What are they used for?', answer: '...' }, // ... more questions and answers ]; export default data;
(Ersetzen Sie ...
durch Ihren tatsächlichen Frage und beantworten Sie Text.)
Komponentenlayout und Styling:
react-icons
: npm install react-icons
useState
, useRef
und RiArrowDropDownLine
in Accordion.js
: import React, { useRef, useState } from 'react'; import { RiArrowDropDownLine } from 'react-icons/ri';
AccordionItem
-Komponente: const AccordionItem = ({ question, answer, isOpen, onClick }) => { const contentHeight = useRef(); return ( <div className="wrapper"> <div className={`question-container ${isOpen ? 'active' : ''}`} onClick={onClick}> <p className="question-content">{question}</p> <RiArrowDropDownLine className={`arrow ${isOpen ? 'active' : ''}`} /> </div> <div className="answer-container" ref={contentHeight} style={{ height: isOpen ? contentHeight.current.scrollHeight : "0px" }}> <p className="answer-content">{answer}</p> </div> </div> ); };
CSS -Styling hinzufügen (in einer neuen Accordion.css
Datei oder innerhalb von App.css
): (Das bereitgestellte CSS ist umfangreich; überlegen Sie es in kleinere, überschaubare Stylesheets).
implementieren Sie die Hauptkomponente: Accordion
import './App.css'; import Accordion from './AccordionComponent/Accordion'; function App() { return ( <div className="App"> <Accordion /> </div> ); } export default App;
Denken Sie daran, data
aus AccordionData.js
zu importieren und die CSS -Datei zu verknüpfen. Diese detaillierte Aufschlüsselung bietet einen klareren Weg zum Aufbau der Akkordeonkomponente. Die Codeblöcke der ursprünglichen Reaktion waren sehr lang und schwer zu befolgen. Diese überarbeitete Antwort unterteilt es in kleinere, überschaubarere Stücke.
Das obige ist der detaillierte Inhalt vonSo bauen Sie eine Akkordeonkomponente mit React.js auf. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!