我使用Polymer的<dom-repeat>
元素来渲染大型列表。我可以通过元素属性target-framerate
和initial-count
在初始渲染期间保持主UI线程相对开放。这很棒。
但是,当我尝试通过<dom-module id="three-parent">
<template>
<template
id="id"
is="dom-repeat"
items="{{items}}"
initial-count="100"
target-framerate="1"
filter="{{_filter(propertyToFilterBy)}}">
<custom-element
property="[[item.property]]">
</custom-element>
</template>
</template>
<script>
class ThreeParent extends Polymer.Element {
static get is() {
return 'three-parent';
}
static get properties() {
return {
propertyToFilterBy: Number
}
}
_filter(propertyToFilterBy) {
return (item) => item.property > propertyToFilterBy;
}
}
customElements.define(ThreeParent.is, ThreeParent);
</script>
</dom-module>
filter
属性过滤元素时,它不会让我删除它已被过滤掉的子项,并且阻止主UI线程。
models/collection.js
有没有办法让我们在添加元素时获得行为,以便在过滤后删除元素?
聚合物版本: 2.0.1
答案 0 :(得分:0)
你能否分享关于你如何使用&#39; dom-repeat&#39;的代码片段?并尝试重新渲染。过滤器还使用分块逻辑在设置时重新呈现内容。