@Insolation

Где лучше хранить данные?

Здравствуйте.
У меня есть приложение, которые будет выводить список продуктов и по клику на продукт выводить данные про него. У меня есть 2 предложения как хранить данные продуктов (они приходят через API).

1. Сделать класс (просто, не компонент) сервиса (он будет Singleton'ом) в нем будем слать запрос, хранить данные, ну и методы get set. И уже потом юзать этот класс для всех других компонентов.

2. Или же делать все это дело в компоненте, данные сохраняя в локальный state и уже через пропсы пропихать данные дальше потомкам.

Подскажите с опыта как лучше сделать?

P.S Знаю что проще юзнуть Redux, но пока хочу без него.
  • Вопрос задан
  • 1651 просмотр
Решения вопроса 2
rockon404
@rockon404 Куратор тега React
Frontend Developer
1. Забудьте о таких подходах в React. Лишняя бесполезная сущность. Лучше вынести в отдельный модуль сами запросы к API.
2. Если используете голый API React, то это самый верный путь, так как при изменении state произойдет обновление компонента и его потомков.

import React, { Component } from 'react';
import { Child } from './Child';
import { getSomeData } from './api';

class Parent extends Component {
  state = {
    data: [],
  };

  componentDidMount() {
    getSomeData.then(data => this.setState({ data });
  }

  render() {
    return <Child data={this.state.data} />;
  }
}
Ответ написан
maxfarseer
@maxfarseer
https://maxpfrontend.ru, обучаю реакту и компании
Если будете делать класс, в котором будут храниться данные и там get/set - то при set, вам нужно будет оповещать всех нуждающихся, что данные изменились.

Если в стейте родителя, то при изменении в нем, все дети итак перерисуются (и в props окажутся новые данные).
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
22 нояб. 2024, в 00:55
500 руб./за проект
21 нояб. 2024, в 23:30
300000 руб./за проект
21 нояб. 2024, в 22:21
3000 руб./в час