Unul dintre cele mai comune elemente de interfață pentru prezentarea datelor dvs. este un tabel. Se pare că există multe aspecte de controlat atunci când se lucrează cu mese, cum ar fi:
În această serie de două părți, veți afla despre datele inspirate și de a lucra cu date tabulare în React utilizând componenta React Bootstrap Table. Veți putea crea tabele sofisticate și profesionale în mod implicit, cu puțin efort și totuși să puteți personaliza fiecare parte pe care doriți să o faceți.
Presupun că sunteți familiarizat cu Reactul însuși și vă veți concentra pe lucrul cu tabelul React Bootstrap. Envato Tuts + are o serie serioasă pe React pe care o puteți citi pentru fundal.
Pe scurt, am folosit reac-create-app pentru a crea o aplicație vanilla React și apoi a instalat tabela react-bootstrap: npm instalează rea-bootstrap-table - salvează
.
Este important să adăugați CSS-ul de bootstrap în fișierul public / index.html.
React App
Dacă utilizați WebStorm JetBrains și doriți să executați testele, adăugați --env = jsdom
în config.
Vom începe cu o masă de bază. Iată o componentă de bază a tabelului. Importează BoostrapTable și TableHeaderColumn din tabelul react-bootstrap și de asemenea CSS din directorul dist.
face() metoda face un tabel cu trei coloane: "ID", "Nume" și "Valoare". Datele reale din tabel provin din proprietatea "date" (this.props.data). Datele conțin numele unor personaje din show-ul hilar "Arrested Development".
import React, Component de la "reacție"; import BootstrapTable, TableHeaderColumn de la "react-bootstrap-table"; import "... /css/Table.css"; import '... / ... / node_modules / react-bootstrap-table / css / react-bootstrap-table.css' Tabelul1 extinde Component render ()); exportul implicit Table1;ID-ul Nume Valoare
Am instanțiat metoda BasicTable în metoda rendering () a App.js standard și am trecut unele date codate greu:
import React, Component de la "reacție"; import "./App.css"; importă tabelul de la './components/Table1' var data = [id: 1, nume: 'Gob', valoare: '2', id: id: 3, numele: "George Michael", valoarea: '4']; clasa App extinde Component render () return (); exportă aplicația implicită;Tabelul de bază
Pentru a vizualiza tabelul, tastați: npm start
. Configurația creată de Create-reacționează aplicație veghează peste codul dvs. și se va recompila ori de câte ori schimbați ceva, deci trebuie să rulați o singură dată și apoi fiecare schimbare va fi reflectată automat.
Compilați cu succes! Acum puteți vedea tabelul de reacții în browser. Local: http: // localhost: 3000 / În rețeaua dvs.: http://192.168.1.136:3000/ Rețineți că dezvoltarea de dezvoltare nu este optimizată. Pentru a crea o construcție de producție, utilizați construirea firelor.
Iată rezultatul:
Rețineți că fiecare coloană are exact aceeași lățime.
Puteți controla mai multe aspecte ale coloanelor. În special, lățimea coloanelor poate fi specificată în unități absolute ca procente sau lăsată nespecificată. Lățimea coloanei coloanelor nespecificate reprezintă restul împărțit în mod egal. De exemplu, pentru o lățime de tabel de 100 px, o coloană a specificat 15 px, o a doua coloană specifică 25% (25 px) și o a treia coloană specifică 30% (15 px).
Două alte coloane nu au specificat o lățime. Coloanele 1, 2 și 3 au utilizat 70 de pixeli împreună, ceea ce lasă 30 px pentru coloanele 4 și 5, ceea ce o va împărți în mod egal. Coloanele 4 și 5 vor avea fiecare o lățime de 15 px. Rețineți că dacă tabelul este redimensionat, numerele se vor schimba. Numai coloana 1 va avea întotdeauna o lățime de 15 px.
Celelalte coloane vor fi calculate pe baza lățimii tabelului. De asemenea, puteți gestiona alinierea textului și coloanelor, precum și stilul anteturilor și coloanelor. Iată un exemplu de specificare a lățimii coloanelor, a alinierii textului și a stilurilor personalizate:
import React, Component de la 'react' import BootstrapTable, TableHeaderColumn din 'react-bootstrap-table' import '... /css/Table.css' import '... /dist/react-bootstrap-table-all.min. css 'Clasa Table2 extinde Component render () return (tabelul de export implicitID-ul Nume Valoare
Ați văzut cum să stilul coloanelor și anteturilor individuale, dar stilul poate merge mult mai departe. Tasta React-bootstrap oferă o mulțime de opțiuni pentru personalizare. Mai întâi puteți adăuga pur și simplu atributele dungate și hover la componenta BootstrapTable pentru a obține culori de fundal alternative pe fiecare rând:
Pentru a modela toate rândurile, utilizați trClassName:
Dacă doriți să obțineți cu adevărat fantezie, trStyle poate funcționa. Consultați următoarea componentă de masă care modelează rânduri diferite în cazul în care numele este "George Michael":
import React, Component de la 'react' import BootstrapTable, TableHeaderColumn din 'react-bootstrap-table' import '... /css/Table.css' import '... /dist/react-bootstrap-table-all.min. css 'function rowClassNameFormat (rând, rowIdx) // rândul este un obiect de rând întreg // rowIdx este indexul rândului consola.log (rândul) rândul retur [' name '] ===' George Michael '? "GeorgeMichael-Row": "Alt-Row"; class Table3 extinde Component render () return () exportă implicit Table3ID-ul Nume Valoare
George Michael-Row și Alte rânduri Clasele CSS sunt definite în Table.css:
.Antetul tabelului background-color: #ccc; Culoarea albastra; padding: 10px; text-aliniere: stânga; .GeorgeMichael-Row fundal-culoare: prune; . Altele-Row background-color: greenyellow;
Odată ce aveți datele într-un tabel, este posibil să doriți să selectați câteva rânduri pentru a efectua anumite operații pe ele. Tasta React-bootstrap oferă o mare varietate de opțiuni de selecție. Toate opțiunile sunt organizate într-un singur obiect pe care îl transmiteți componentei ca fiind selectRow atribut. Iată câteva dintre opțiunile de selecție:
Următoarele componente demonstrează multe dintre aceste opțiuni:
import React, Component de la 'react' import BootstrapTable, TableHeaderColumn din 'react-bootstrap-table' import '... /css/Table.css' import '... /dist/react-bootstrap-table-all.min. css 'function onSelectRow (rand, isSelected, e) if (isSelected) alert (' Ați selectat '$ row') const selectRowProp = mode: 'checkbox', clickToSelect: true , unselectable: [2], selectat: [1], onSelect: onSelectRow, bgColor: 'gold'; clasa Table4 extinde Component render () return) exportă implicit Table4ID-ul Nume Valoare
În această parte, am creat o aplicație React simplă utilizând reac-create-app, adăugat React-Bootstrap-Table, umplut un tabel cu date, a lucrat cu coloane, s-au șters tabelul și rândurile selectate.
În următoarea parte, vom continua călătoria prin extinderea rândurilor, adăugarea rândurilor, ștergerea rândurilor și acoperirea paginării, editarea celulelor și personalizarea avansată. Rămâneți aproape.