Чтобы избежать «рывков», сделайте ваши компоненты Mobx как можно меньше. Например, создайте свой компонент item с субкомпонентом «key» и субкомпонентом «ts» (и сделайте оба субкомпонента observer
s). Тогда Mobx должен вызывать только обновление подкомпонентов, а поскольку каждый подкомпонент заботится только об одном свойстве, редактирование одного не должно влиять на другое.
Вы должны будете передать весь «предмет» observable
компоненту (как опору), чтобы Mobx мог его правильно отследить. Кроме того, убедитесь, что обновления коллекции элементов и их значений установлены, и не создавайте заново объекты.
Вы правы, что чтение свойства заставляет Mobx отслеживать изменения этого свойства. Поэтому, если вы не хотите, чтобы компонент повторно отображался, вы не должны изменять ничего, что вы читаете из этого компонента. Однако подкомпоненты, которые observer
s, отслеживают свойства Mobx в разных контекстах. Поэтому, если вы читаете что-то в дочернем компоненте-наблюдателе, но не в родительском компоненте, Mobx не будет обновлять родительский компонент.
См. Также: Оптимизация Mobx для реакции