Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.04.2021, 20:12
Новичок на форуме
Отправить личное сообщение для rubender Посмотреть профиль Найти все сообщения от rubender
 
Регистрация: 08.04.2021
Сообщений: 1

Новый стейт менеджер для react, preact
Предлагаю вашему вниманию мой велосипед

https://github.com/rubender/redoor

Когда я делал библиотеку хотел сделать как можно проще библиотеку управления стейтом для реакта, так и родилась эта библиотека.
Я ее обкатываю уже где то год.

пример использования:
import { h, Component, createContext, render } from 'preact';
import createStoreFactory from 'redoor';

const createStore = createStoreFactory({
    Component:Component,
    createContext:createContext,
    createElement:h
});

const actions_module = {
  initState:{
    cnt:0,
    direction:''
  },
  a_click:({state,args})=>({
    cnt:(state.cnt + args),
    direction:(args > 0 ? 'plus' : 'minus')
  })
}

const { Provider, Connect } = createStore([actions_module]);

const ButtonPlus = Connect(
  ({cxRun})=><button onClick={e=>cxRun('a_click',1)}>plus</button>
)

const ButtonMinus = Connect(
  ({cxRun})=><button onClick={e=>cxRun('a_click',-1)}>minus</button>
)

const Display = Connect(({direction,cnt})=><div>
      count: {cnt} <br/>
      direction: {direction}
</div>)

const Main = () => (
  <Provider>
    <Display/>
    <hr/>
    <ButtonPlus/> - <ButtonMinus/>
  </Provider>
)

render(<Main />, document.getElementById("app"));
Ответить с цитированием
  #2 (permalink)  
Старый 08.04.2021, 20:49
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,586

Выглядит некрасиво, уже минус. Чем лучше обычного стейта - непонятно. О mobx и прочем можно даже не говорить.
__________________
29375, 35
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ищу Senior Frontend (React, Angular), Москва, 140 - 180 000 gross, full time офис. Ekaterina Polyakova Работа 0 11.08.2016 19:07
J2ds для создания игр на JavaScript Microp Библиотеки/Тулкиты/Фреймворки 10 14.12.2015 09:34
поиск классов внутри тега yozuul jQuery 24 14.06.2013 22:00
ImageCMS 3.0 - новый шаг в развитии CMS для Интернет-магазинов и бизнеса imagecms Серверные языки и технологии 0 28.05.2012 19:34
Менеджер для Yandex/Google Maps в одном флаконе tipugin Общие вопросы Javascript 0 08.01.2011 00:13