将列表渲染到DOM并管理其状态与管理简单变量的状态大相径庭。
一些库使用特殊的标识符,称为“键”,来启用其增量渲染引擎,从而确定发生了哪些更改以及需要移动哪些内容:```javascript {friends.map(friend =>
<code>
另一种无需任何猜测的方法是使用可观察集合:一种在更改时发出事件的数组,其中包含有关已更改元素的详细信息,以便渲染引擎可以捕获这些信息并确定渲染页面上更改的最佳方法。在与Rimmel.js一起使用时,这就是可观察集合的用途:
```javascript
class Item {
// 定义项目结构
}
const initial = [ /* 初始数据 */ ];
const data = new ObservableCollection(initial, Item);
const addNew = async () => {
const newItem = await newItemForm.show();
data.push(newItem);
};
document.body.innerHTML = rml`
<ul>
${data}
</ul>
<button onclick=${addNew}>添加新项目</button>
`;</code>可观察集合巧妙地代理了所有数组方法,rimmel中的collectionsink知道,一个新项目需要附加到列表的末尾。如果调用.unshift(),它知道需要在开头插入一个新项目,以此类推。
想要替换集合的全部内容?.assign()方法只做这件事,并导致渲染引擎简单地替换DOM中的整个列表。同样,对集合的所有其他变异操作都会将信息传递给Sink,以便它准确地知道要执行哪种DOM变异来反映更改。没有猜测,没有过度设计的DOM差异,总体上非常轻量级、快速。
如果您想亲身体验使用ObservableTypes的便捷性,请尝试一下:

以上就是具有观察型的国家管理的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号