Skip to content

developit/domdiff

Repository files navigation

domdiff

donateCoverage StatusBuild StatusLicense: ISC

A vDOM-less implementation of the snabbdom diffing logic.

Signature

futureNodes=domdiff(parentNode,// where changes happencurrentNodes,// Array of current items/nodesfutureNodes,// Array of future items/nodes (returned)getNode,// optional way to retrieve a node from an itembeforeNode// optional item/node to use as insertBefore delimiter);

How to import it:

  • via CDN, as global variable: https://unpkg.com/domdiff
  • via ESM, as external module: https://unpkg.com/domdiff/esm/index.js
  • via CJS: const EventTarget = require('domdiff').default;( or require('domdiff/cjs').default )
  • via bundlers/transpilers: import domdiff from 'domdiff';( or from 'domdiff/esm' )

Example

varnodes={a: document.createTextNode('a'),b: document.createTextNode('b'),c: document.createTextNode('c')};varparentNode=document.createElement('p');varchildNodes=[nodes.a,nodes.c];parentNode.append(...childNodes);parentNode.textContent;// "ac"childNodes=domdiff(parentNode,childNodes,[nodes.a,nodes.b,nodes.c]);parentNode.textContent;// "abc"

Compatibility:

Every. JavaScript. Engine.

About

Diffing the DOM without virtual DOM

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript56.5%
  • HTML34.8%
  • CSS8.7%