All streams
Search
Write a publication
Pull to refresh
7
0
Дмитрий Николаев @one_more

JS программист

Send message
Стоит отметить что dispatch есть — описано в секции api, и объект Action создается — он не прокидывается в другие редюсеры, но передается в middleware для возможности создания «сайд-эффектов»
Если при обновлении одного todo не вызывать слушателей списка, то в данном случае не будет работать мета редюсер.
Что касается вложенности, такая структура легко преобразуется в плоский список — демо; это упростит структуру приложения и подписки будут работать ожидаемо
не совсем
  • MST подразумевает создание стора при инициализации приложения (иначе это уже не центральный стор)
  • (поправьте если это не так) подписка происходит на весь стор
  • 156кб может быть критично для большого приложения (против 3кб)
при подписке входным параметром будет объект вида
{ [branchName]: branchState, action1, action2, ...actionN }
Как вариант можно еще динамически менять правила валидации, если правил много и применять надо только при условии.
import React, {Component} from 'react';
import Validation, {DisabledOnErrors, ValidationInput} from 'react-livr-validation';

const data = {
    login: '',
    email: ''
};

class App extends Component {
    state = {
        withEmail: false
    };

    toggleWithEmail = ({target: {checked}}) => {
        this.setState({
            withEmail: checked
        })
    };

    render() {
        const {withEmail} = this.state;
        const schema = {
            login: ['required', 'not_empty'],
            email: withEmail ? ['required', 'not_empty', 'email'] : []
        };
        return (
            <div>
                <Validation
                    data={data}
                    schema={schema}
                >
                    <form>
                        <ValidationInput name="login">
                            <input name="login"/>
                        </ValidationInput>
                        <ValidationInput name="email">
                            <input name="email" type="email"/>
                        </ValidationInput>
                        <div>
                            <label htmlFor="subscribe">subscribe</label>
                            <input
                                id="subscribe"
                                type="checkbox"
                                onChange={this.toggleWithEmail}
                            />
                        </div>
                        <DisabledOnErrors>
                            <input type="submit"/>
                        </DisabledOnErrors>
                    </form>
                </Validation>
            </div>
        );
    }
}
Какое-то у вас костыльно-ориентированное программирование получается — костыль для браузера, костыль для сервера; вместо того, чтобы использовать нормальный инструмент, который хорошо справляется с работой в обоих случаях
Насчет sprute — специально, вы правы. А насчет английского — мне пока уровень владения не позволяет — много ошибок в письменной речи. Собираюсь переписать когда буду владеть языком на должном уровне.
Довольно большой процент задач все-таки является одинаковым — выборка/обработка/отображение данных. Например, поисковый движок можно сделать изоморфным.
Пункты меню в левой части не меняют адрес страницы — это просто якори на определенный блок страницы. А так ссылки работают через history api.
Будет такое. Но архитектура фреймворка позволяет разбивать код на изоморфный и специфичный для каждой платформы — подобные ограничения можно обходить без использования костылей.
основная цель феймворка как раз состоит в том, чтобы реализация изоморфности не накладывала никаких ограничений на архитектуру.
Архитектура фреймворка позволяет легко добавить такой функционал, если есть необходимость, используя любую реализацию (cellx например). Нет необходимости встраивать это по умолчанию на мой взгляд (это может быть не нужно в некоторых проектах). Я сосредоточился в основном на гибкости и возможности расширения и стараюсь сохранять фреймворк максимально компактным.
На клиенте страницы рендерятся так же, как и на сервере. Шаблонизатор является изоморфным.
Что вы имеете в виду под реактивностью?

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity