Pull to refresh
7
0
Andrey Antropov @Laiff

Frontend developer

Send message
Хорошо. Вот написанное выше на effector

export const getSomeItemsFx = createEffect(apiGetSomeItems)

export const $someItems = createStore<ISomeItem[]>([])
  .on(getSomeItemsFx.doneData, (state, items) => items);

export const $error = createStore<string | null>(null)
  .on(getSomeItemsFx.fail, (state, { error }) => error.message)
  .reset(getSomeItemsFx);


export const WithRequest = () => {
  const isLoading = useStore(getSomeItemsFx.pending);
  const someItems = useStore($someItems);
  const error = useStore($error);

  useEffect(() => {
    getSomeItemsFx()
  }, [])

  if (isLoading) return <div>Fetching data ...</div>;
  if (error) return <div>Error: {error}</div>;

  return (
    <div>
      {someItems.map((item) => <div key={item.id}>{item.title}</div>)}
    </div>  );
};


Код компонента фактически идентичен, а код модели существенно меньше. Плюс сам запрос начнётся после монтирования компонента, а не при его маунте
Да не критично, но не идеально, поэтому зажал потом симметрично (почти) и без потерь.
image

Планомерно зажимал, затягивая в нужную область приманкой, не скажу что это ошибка бота
Yo — это классический генератор, однако, его аналог используется под капотом и у нас, в виде plop, то есть, получается, что rispa это нечто большее, чем просто генератор, так как она интегрируется с проектом и ее возможности растут вместе с ним, сейчас речь про генераторы и команды в большей степени.
Второй основной частью, является постулируемая модульность приложения и она как раз позволяет подружить между собой все части и обеспечить понятный интерфейс взаимодействия.

Information

Rating
Does not participate
Registered
Activity