2024-07-07 17:30:36
  • Hello!
  • Whats ya doin?
  • ByeBye

[&]

3.145.91.59

Tworzenie i używanie komponentów szablonu

workshop: #15-react-layout-components.html

React - komponenty szablonu (layout components)

Tworzenie komponentu szablonu oraz dostarczanie do nich komponentu, danych i styli.

Przygotowanie

  1. Posiadasz wcześniejszą wersję aplikacji React
  2. Posiadasz dostęp do katalogu aplikacji oraz terminala
  3. Pootrafisz stworzyć Komponent i znasz język JSX
1 Komponent szablonu #1

Wstęp

Komponenty layoutu pozwalają aplikacji React na wyświetlanie w pojedynczym widoku wielu różnych komponentów. Odpowiadają funkcji include, czy require dla plików w języku PHP.

node_modules
public
src
├── App.css
├── App.js
├── components
│   └── SplitScreen.js
├── pages
│   └── Help.js
├── index.css
├── index.js
├── logo.svg
├── reportWebVitals.js
└── setupTests.js

Komponent szablonu: SplitScreen.js

Stylowanie komponentu:

Aby stylowanie zadziałało należy doinstalować pakiet: npm install styled-components

import styled from 'styled-components';
const Container = styled.div`
	display: flex;
`;
// podstawowy układ 2 równych kolumn (50%-50%)
const Pane = styled.div`
	flex: 1;
`;
// alternatywny układ z 1 kolumną szerszą (np. 30%-60%)
const PaneTwo = styled.div`
	flex: 2;
`;
...

Komponent widoku:

...
export const SplitScreen = (
  { left: Left, right: Right }
) => {
  return (
	<Container>
	  <Pane>
	    <Left/>
	  </Pane>
	  <Pane>  // lub alternatywnie PaneTwo
	    <Right/>
	  </Pane> // lub alternatywnie PaneTwo
	</Container>
  );
}

Komponent strony: Help.js

import React from 'react';
import { SplitScreen } from '../component/SplitScreen';
// TUTAJ możliwe komponenty:
// LeftSideComp
// RightSideComp
const Help = ()=>{
  return (
    <>
	  <h1>Help</h1>
	  <SplitScreen left={LeftSideComp}
                      right={RightSideComp} />
    </>
  );
}
export default Help;

Możliwe komponenty

Osadzone w komponencie strony lub jako zewnętrzne pliki.

const LeftSideComp = ()=>{
	return <h1>FAQ</h1>;
}
const RightSideComp = ()=>{
	return <h1>FORM</h1>;
}	
2 Komponent szablonu #2

Wykonaj następujący Layout Component:

node_modules
public
src
├── App.css
├── App.js
├── components
│   ├── ListItem.js
│   └── RegularList.js
├── pages
│   └── Parts.js
├── index.css
├── index.js
├── logo.svg
├── reportWebVitals.js
└── setupTests.js

Podsumowanie

  1. Podaj nazwę katalogu, w którym należy umieścić plik Komponentu. Czy komponenty można umieszczać w dedykowanych katalogach?
  2. Czym jest komponent w React, i jak możemy je podzielić?
  3. Czym jest stylowanie komponentu?