1. Ага и все сразу становится понятнее :)
2. Потому что это магия, да и опечатки сложнее искать:
2.1. + Интерфейс дает возможность валидировать экшн в редьюсеры и все типы отлично подсказываются в IDE.
По мне так backbone сложнее и сильнее завязан на верстку.
Например следующий код перестанет отрабатывать, как только ссылку заменят кнопкой или просто сменят название класса. Такой подход не далеко ушел от jQuery.delegate
В knockoutjs все это находится в темплейте, т.е. в одном месте.
+ Очень просто связывать элементы формы. Меняешь значения переменной в модели, автоматом обновляется значение в текстовом поле и наоборот.
2. Потому что это магия, да и опечатки сложнее искать:
2.1. + Интерфейс дает возможность валидировать экшн в редьюсеры и все типы отлично подсказываются в IDE.
Во вторых константа SET_USER нужна так же и в редьюсе, или там тоже строкой писать?
Ну а «мало кто сможет понять» слишком преувеличено.
В webpack:
После этого просто разбиваешь проект на саб пакеты и используешь:
index.js
data-bind='template: { name: «GridColumnTable», foreach: Columns, templateOptions: { ViewModelParent: $data } }'
и
click: function(event){ $item.ViewModelParent.TotalCallsGrid.ChangeSort(this); }
примерно так.
Например следующий код перестанет отрабатывать, как только ссылку заменят кнопкой или просто сменят название класса. Такой подход не далеко ушел от jQuery.delegate
events: {
«click .todo-clear a»: «clearCompleted»
}
В knockoutjs все это находится в темплейте, т.е. в одном месте.
+ Очень просто связывать элементы формы. Меняешь значения переменной в модели, автоматом обновляется значение в текстовом поле и наоборот.
Понял что до этого страдал фигней :). Очень рекомендую всем.
Начинать работать с не инициализированными переменными нельзя, или у вас поощряются нотисы?
Да и вообще, 80% советов можно смело переносить в пункт «Бесполезная оптимизация».
Если же у вас проект, в котором нагрузки такие, что не хватает скорости самого php, то думаю что нужно менять язык, а не применять эти советы.