Social Media Photo by Christopher Rusev on Unsplash
An essential diffing algorithm for µhtml.
futureNodes=udomdiff(parentNode,// where changes happen[...currentNodes],// Array of current items/nodes[...futureNodes],// Array of future items/nodes (returned)get(node,toDoWhat),// a callback to retrieve the nodebefore// the anchored node to insertBefore);You can find all info from domdiff, as it's exactly the same concept:
get(node, 1)to retrieve the node that's being appendedget(node, 0)to get the node to use for aninsertBeforeoperationget(node, -0)to get the node to use for aninsertAfteroperationget(node, -1)to retrieve the node that's being removed
If you don't care about any of those second arguments values, const get = o => o; is a valid get too.
- via CDN, as global variable:
https://unpkg.com/udomdiff - via ESM, as external module:
import udomdiff from 'https://unpkg.com/udomdiff/esm/index.js' - via CJS:
const udomdiff = require('udomdiff');( orrequire('udomdiff/cjs')) - via bundlers/transpilers:
import udomdiff from 'udomdiff';( orfrom 'udomdiff/esm')
