Как сохранить компоненты с состоянием, связанные с тем же элементом списка, что и список изменений - PullRequest
0 голосов
/ 05 июня 2019

Я рендеринг компонентов из списка элементов.Когда элементы добавляются или удаляются из этого списка, компоненты перераспределяются на другие элементы, а не перемещаются в DOM.Это проблема, потому что компоненты имеют состояние, такое как смещение прокрутки или внедренные плагины jQuery.

В качестве способа реагирования это добавляет добавление атрибута «ключ» к компонентам, отображаемым в списке.Это используется при визуализации, чтобы связать шаблоны компонентов с одним и тем же экземпляром.Существует ли подобный механизм в Ractive?

Кажется, что использование методов манипулирования массивами в ractive позволяет синхронизировать компоненты.Тем не менее, я хотел бы сохранить свои изменения состояния вне Ractive.

let numbers = ['one', 'two', 'three'];
const ractive = new Ractive({
  target: '#target',
  template: `
    {{#each numbers}}
    <div class="num">{{.}}</div>
    {{/each}}
  `,
  data: { numbers: numbers }
});

// Add untracked state to the second element
ractive.findAll('.num')[1]['style']['background-color'] = 'red';
numbers.shift();
ractive.update();
// Second element remains red, even though the item it used to represent is now the first
...