微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何优化具有相同属性值的同一元素的多个实例的渲染

如何解决如何优化具有相同属性值的同一元素的多个实例的渲染

我有一个基于 lit-element 的组件,它正在呈现一个包含大约 200 个条目的组合框。模板的渲染大约需要 0.20 秒。

html`
    <select>
        ${this.list.map((o) => html`
            <option id="${index}"
                    @click="${this.handleClick}">${o}</option>`
        )}
    </select>`

我多次渲染同一个组件,属性列表的值相同。每次渲染需要 0.20 秒,如果我渲染组件的 10 个实例,这会很长。有什么办法可以优化这个,特别是当知道生成的模板对于组件的每个实例都是相同的时?

解决方法

您可以使用中间变量

html`
<select>
    ${this.options}
</select>`

有这样的功能

    this.options = this.list.map(
        (o) => html`
            <option id="${index}" @click="${this.handleClick}">${o}</option>`
    );

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。