1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
| import { createElement, render, renderDOM } from './virtualDom.js' import domDiff from './domDiff.js' import doPatch from './doPatch.js'
const vDomOld = createElement('ul', { class: 'list1', style: 'width: 300px;height: 300px; background-color: orange', }, [ createElement('li', { class: 'item', 'data-index': 0 }, [ createElement('p', { class: 'text' }, ['第1个列表项']) ]), createElement('li', { class: 'item', 'data-index': 1 }, [ createElement('p', { class: 'text' }, ['第2个列表项']) ]), createElement('li', { class: 'item', 'data-index': 2 }, [ createElement('p', { class: 'text' }, ['第3个列表项']) ]), createElement('li', { class: 'item', 'data-index': 3 }, [ createElement('p', { class: 'text' }, ['第4个列表项']) ]) ] )
const rDom = render(vDomOld) renderDOM(rDom, document.getElementById('app'))
var vDomNew = createElement('ul', { class: 'list2', style: 'width: 300px;height: 300px; background-color: orange', }, [ createElement('li', { class: 'item', 'data-index': 0 }, [ createElement('p', { class: 'text' }, ['第1个列表项']) ]), createElement('li', { class: 'item', 'data-index': 1 }, [ createElement('p', { class: 'text' }, ['第2个列表项']) ]), createElement('li', { class: 'item', 'data-index': 2 }, [ createElement('p', { class: 'text' }, ['第3个列表项']) ]), createElement('li', { class: 'item', 'data-index': 3 }, [ createElement('h1', { class: 'text' }, ['越难越爱', '---']) ]) ])
const patches = domDiff(vDomOld, vDomNew) console.log(patches); doPatch(rDom, patches)
|