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

以上就是具有观察型的国家管理的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1501510.html
微信扫一扫
支付宝扫一扫