Я рендеринг компонентов из списка элементов.Когда элементы добавляются или удаляются из этого списка, компоненты перераспределяются на другие элементы, а не перемещаются в 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