An open API service indexing awesome lists of open source software.

https://github.com/vitaminvp/react-patterns

react patterns examples
https://github.com/vitaminvp/react-patterns

compound-components context control-props hoc kottans patterns props-collection props-getter provider-pattern proxy-component react render-props

Last synced: about 1 year ago
JSON representation

react patterns examples

Awesome Lists containing this project

README

          

# react-patterns 😺

## Kottans report

#### (still in the process of writing)

[Preview link](https://react-pattern.herokuapp.com/)

[Presentation](https://docs.google.com/presentation/d/1zlfsA-dRYnW2Zf4oP1IUG_Um3fwihq0fBRrD5BR4Dnc/edit?usp=sharing)

В репозитории собраны примеры некоторых паттернов для работы с библиотекой [React](https://reactjs.org/).
Вся информация взяты из просторов Интернета.
Некоторые паттерны, на мой взляд, являются противоречивыми и приведены только с ознакомительной целью.

Для примера взята кнопка `switch` которая последовательно реализуется с применением разных подходов и усложнением логики работы.

Примеры кода находятся в папке
`src\examples` пронумерованны и предполагают последовательное ознакомление т.к. последующие примеры могут содержать предыдущие паттерны.

Create with [create-react-app](https://github.com/facebook/create-react-app)

To start:

#### `npm install` or `yarn install`

#### `npm start` or `yarn start`

Open [http://localhost:3000](http://localhost:3000) to view it in the browser.

### React Patterns

- Default component
- Compound components
- React context
- Render Props
- Props Collections
- Prop Getters
- State Initializers
- State Reducers
- Control Props
- Provider Pattern
- Higher Order Components

### Bonuses

- Reusable Styles
- State Reducers (with change types)
- Proxy component
- Controlled Components (submit form)
- Uncontrolled Components (submit form)

![screenShot](./public/21.12.11.png)

#### Links:

- [advanced-react-patterns-v2](https://github.com/kentcdodds/advanced-react-patterns-v2)
- [advanced-react-patterns-ultrasimplified](https://github.com/ohansemmanuel/advanced-react-patterns-ultrasimplified)
- [reactjs.org](https://reactjs.org/docs/forms.html#controlled-components)