Запоминание комплекса Реагирующее состояние - PullRequest
0 голосов
/ 14 марта 2020

У меня есть состояние React, к которому необходимо получить доступ / изменить соединение с WebSocket в реальном времени, а также вложенный дочерний компонент.

import React from "react";
import Editor from "component/Editor";

function App() {
  let fileTreeData = [
    {
      id: 1,
      type: "directory",
      name: "Test Root",
      children: [
        { id: 2, type: "file", name: "Test 2" },
        {
          id: 3,
          type: "directory",
          name: "src",
          children: [
            { id: 4, type: "file", name: "index.js" },
            { id: 5, type: "file", name: "test.js" }
          ],
          expanded: false
        },
        { id: 6, type: "file", name: "Test" }
      ],
      expanded: true
    }
  ];

  return <Editor fileTreeData={fileTreeData} />;
}

export default App;

Как бы я go о реализации этого в React? Глобальное состояние кажется анти-паттерном.

1 Ответ

0 голосов
/ 14 марта 2020

Я бы использовал MobX для этой цели.

Плюсы:

  • Это просто реализовать.
  • Это хорошо производительность.
  • Это гибко в определении состояния.
  • Вы можете использовать MobX только для одного компонента, не глобально, а для глобального состояния.

Минусы :

  • Это изменяет данные, поэтому вы должны следовать правилам, чтобы иметь правильное состояние.
  • Это очень гибкий, поэтому вы можете использовать его неправильно.
...