Open chestozo opened 8 years ago
по-жёсткому
👍
А сохранять это дело перед тем как инвалидировать модельку нельзя? Или хочется типа декларативно сделать?
Когда мы хотим её перезагрузить "по-жёсткому"
Вот это что за момент — как мы ее хотим перезагрузить, сделать руками invalidate
?
Сразу на твои 1 и 3 комменты ответ:
по-жёсткому это значит
oldModel.setData(newModelInstance.getData())
:)
Можно конечно везде, где у модели вызывается invalidate
рядом вызвать saveModelsCount
, но: не везде можно подобраться + удобно один раз написать такое внутри секции events
при декларации модели.
Ага, понял тебя. Нормальная тема.
Добавим в этом таске ns-view-before-hide
, раз есть кейс?
Только эти события будут выбиваться из общей логики вызова пачками — нужно сделать trigger
непосредственно перед скрытием ноды, а не класть ссылку на вьюшку в очередь, чтобы дернуть все события после.
Ну вот да, возможно проседание производительности..
С другой стороны, раз тебе нужно что-то сделать до скрытия ноды — предполагается, что это что-то синхронное.
Не факт, но допустим )
Ну, я к тому, что если тебе нужны только данные от ноды, типа offsetHeight
— тогда надо в этом обработчике просто взять их и записать куда-то, легкая операция.
А на ns-view-hide
уже выполнять свои адские рассчеты.
Но про эту особенность нужно будет помнить, конечно
С другой стороны, раз тебе нужно что-то сделать до скрытия ноды — предполагается, что это что-то синхронное.
Самое очевидное применение перед скрытием view - это анимация, которая не может быть синхронной.
Не, этот обработчик просто дает тебе возможность подхачиться к моменту перед скрытием — программа в любом случае будет дальше выполняться, после выполнения этого обработчика, не важно что он там будет делать: если вернет промис, то всем пофигу.
Поэтому это скорее не про анимации все-таки.
Да, анимации мы тут не поддержим, это просто lifecycle hook.
Кажется, полезное событие. Пример полезного кейса: у нас есть модель-коллекция типа "бесконечный список" с подгрузкой по скроллу. Когда мы хотим её перезагрузить "по-жёсткому" мы сохраняем число элементов коллекции и запрашиваем ровно столько item-ов.
Было бы удобно сохранять число элементов в коллекции именно по событию типа
ns-model-before-invalidate
.