unicorn/prefer-modern-dom-apis 样式
其作用
强制使用
childNode.replaceWith(newNode)
而非parentNode.replaceChild(newNode, oldNode)
referenceNode.before(newNode)
而非parentNode.insertBefore(newNode, referenceNode)
referenceNode.before('text')
而非referenceNode.insertAdjacentText('beforebegin', 'text')
referenceNode.before(newNode)
而非referenceNode.insertAdjacentElement('beforebegin', newNode)
为什么这很糟糕?
使用较新的 DOM API 有很多好处,例如
- 无需遍历父节点。
- 一次追加多个节点。
DOMString
和 DOM 节点对象都可进行操作。
示例
针对此规则的不正确代码示例
javascript
oldChildNode.replaceWith(newChildNode);
针对此规则的正确代码示例
javascript
parentNode.replaceChild(newChildNode, oldChildNode);