百科.dev
全部条目在线工具AI 编程趋势榜开源项目技术资讯提交条目
登录
< 返回工具列表
N

nanomorph

> 编程语言
开源

- 实时 DOM 节点的超快差异算法

754 stars0 点赞3 次浏览
访问官网GitHub

工具介绍

- 实时 DOM 节点的超快差异算法

nanomorph [![稳定性][0]][1]

[![npm 版本][2]][3] [![构建状态][4]][5] [![downloads][8]][9] [![js-standard-style][10]][11] 用于真实 DOM 节点的超快差异算法:zap:

使用方法

javascript
var morph = require('nanomorph')
var html = require('nanohtml')

var tree = html`
`
document.body.appendChild(tree)
// document.body === 

morph(tree, html`
`)
// document.body === 

morph(tree, html`
`)
// document.body === 

清除输入值

要从输入中删除值,有几种选项:

javascript
html`` // set the value to null
html``               // omit property all together

重新排序列表

在 DOM 上处理元素列表是很常见的操作。添加、删除或修改元素列表是很常见的操作。 重新排序列表中的元素可能会很耗时。为了优化此操作,您可以 为 DOM 节点添加 id 属性。在重新排序节点时,它会比较 具有相同 ID 的节点彼此竞争,从而大大减少重新渲染的次数。 在与 DOM 节点缓存结合使用时,效果更加明显。

javascript
var el = html`
  
    

    

  
`

有时我们希望告诉算法不要对某些节点(以及其子节点)进行评估。这可能是因为我们确信它们没有发生变化,或者可能是因为另一段代码正在管理 DOM 树的某部分。要实现这一点,nanomorph 会对节点调用 .isSameNode() 方法,以确定是否需要更新它们。

阻止特定元素的变形

在某些情况下,两个元素永远不应该进行变形,而应该被替换。nanomorph 会自动对具有不同标签名称的元素进行此操作。但是,如果我们正在实现自定义组件系统,例如,不同类型的组件应该被视为具有不同的标签 - 即使它们都渲染为 `

Issues· 0 开放

查看全部 Issues在 GitHub 打开

暂无开放 Issues,或尚未同步最近议题。

> 标签

JavaScriptalgorithmdiffdomtree

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年8月1日
最后更新2026年9月17日
分类编程语言
定价开源

> 相关工具

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言