Riot.JS: неизменная структура данных вызывает нежелательный рендеринг

redux immutability riot.js

350 просмотра

1 ответ

3898 Репутация автора

Я пытался управлять состоянием приложения Riot с помощью Redux, но заметил, что когда что-то меняется в моей модели (простой массив элементов), все элементы, представленные в этой коллекции, перерисовываются, даже если изменение относится к одному элементу.

Я воспроизвел проблему здесь

С изменяемым редуктором проблем нет, в обоих случаях я наблюдаю изменения в хранилище, чтобы вызвать обновление представления (ненужное с изменяемыми данными).

this.on('mount', () => {
  opts.store.subscribe(() => {
    this.update({
      items: opts.store.getState()
    })
  })
})

GIF демонстрирует, что DOM моего списка полностью перерисован

Я думал, что виртуальная проверка DOM Riot будет только повторно визуализировать измененные части DOM ...

Я сделал что-то не так?

Автор: Freez Источник Размещён: 14.07.2016 10:28

Ответы (1)


1 плюс

700 Репутация автора

Решение

Добавить no-reorderв цикл:

<li no-reorder each={ items } onclick={ toggle }>
  <span>{x}</span>
</li>
Автор: pongo Размещён: 28.07.2016 08:49
Вопросы из категории :
32x32