Обновить
17
-1.6
Andrew Ka@comerc

#кодеротбога

Отправить сообщение

Ну очень привык к yarn upgrade-interactive. Есть ли подобное для npm? Нашёл npm-upgrade — почти, но оно пошаговое.

Интересно, а вместе с Yarn полетит, или npm-only?

А ещё Logux скоро подвезут.

Можно взять FeathersJS и вообще забыть о транспорте между клиентом и сервером.

Знаете, какой рутовый компонент приложения при использовании redux? Provider. Представьте, что в его локальном стейте хранятся все данные. Вот и весь наш redux.

А какие есть проекты для быстрого запуска RESTFul API сервера? Типа как FeathersJS, ну или хотя бы на уровне PHP-CRUD-API

Lerna? Не, не слышал.

Божечки, наконец-то!

Я выбираю Flow, т.к. волен выбирать вкусные babel-плагины.

Я сейчас на PHP (по требованию заказчика) сочиняю API. После 5-ти летней паузы. Вот откуда ноги растут с этими запятыми!

А если прикрутить Prettier, то оно вообще не парит.

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

Кстати, до меня дошло, что это просто функция redux-thunk, если немного подправить:


const appLoad = config => dispatch => 
  // ...

Абрамов в одном из роликов по редаксу демонстрировал, как переместить селекторы к редюсерам. Очевидно, с целью сконцентрировать бизнес-логику в одном месте.

Мопед не мой, статья — конспект подкаста ради фидбека. Я же иду по стопам Твиттера, они сначала все хранили в сторе редакса, и потом только в рамках оптимизации вынесли состояния в локальный стейт компонентов, там где это потребовалось.

Сами a,b,c,d в сторе хранить не надо, т.к. они не входят в модель

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

в стейте надо поставить какой-то флаг, что он недокалькулирован

в redux-act есть такая удобная штука — batch

lifecycle-методы синхронные и вообще мы их не рассматриваем

Тут можно поспорить, я уже такого нагородил в componentDidMount :)


И в Next.JS у компонентов есть асинхронный getInitialProps.

Пример выноса общего кода на redux-thunk:


export const appLoad = (dispatch, config) =>
  new Promise((resolve, reject) => {
    let isTimeout = false
    let isFetch = false
    setTimeout(() => {
      isTimeout = true
      if (isFetch) {
        dispatch(setLoading(false))
      }
    }, 500) // демонстрировать state.app.isLoading не менее 500 мс
    axios(config)
      .then(response => {
        resolve(response.data)
      })
      .catch(error => {
        dispatch(setMainError(error.toString()))
        reject(error)
      })
      .then(() => {
        isFetch = true
        if (isTimeout) {
          dispatch(setLoading(false))
        }
      })
  })

Можно попробовать — тынц

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность