代码拉取完成,页面将自动刷新
同步操作将从 格雷狐思/vue-diff 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
Virtual DOM library
介绍了多种虚拟 DOM 库的 diff 算法,可在 lib/diff/
下查看。
import { utils } from './dist/magic-dom.js'
const { set } = utils
set('diffType', 'virtual-dom') // 默认:使用 virtual-dom 的 diff 算法
set('diffType', 'cito') // 使用 cito.js 的 diff 算法
set('diffType', 'snabbdom') // 使用 snabbdom 的 diff 算法
import { h, diff, render, patch, utils } from './dist/magic-dom.js'
const { set } = utils
const list = ['a', 'b', 'c', 'd']
const vdom = h(
'div',
{ data: 'info' },
list.map(t => {
return h('p', {key: t}, t)
)
)
const $dom = render(vdom) // 将虚拟 DOM 渲染成 真实 DOM
const $app = document.getElementById('app')
$app.appendChild($dom) // 进行 DOM 挂载
set('diffType', 'virtual-dom') // 默认:使用 virtual-dom 的 diff 算法
// 将 list 随机排序
const newList = list.sort((a, b) => Math.random() * 2 - 1)
// 构造新的虚拟 DOM
const newVdom = h(
'div',
{ data: 'info' },
list.map(t => {
return h('p', {key: t}, t)
)
)
// diff 得到更新补丁
const patches = diff(vdom, newVdom)
// 将补丁更新到视图上
patches && patch($app, patches)
set('diffType', 'snabbdom') // 使用 snabbdom 的 diff 算法
// 将 list 随机排序
const newList = list.sort((a, b) => Math.random() * 2 - 1)
// 构造新的虚拟 DOM
const newVdom = h(
'div',
{ data: 'info' },
list.map(t => {
return h('p', {key: t}, t)
)
)
// cito diff 过程中会直接更新 DOM,不再需要 patch
diff(vdom, newVdom)
set('diffType', 'snabbdom') // 使用 snabbdom 的 diff 算法
// 将 list 随机排序
const newList = list.sort((a, b) => Math.random() * 2 - 1)
// 构造新的虚拟 DOM
const newVdom = h(
'div',
{ data: 'info' },
list.map(t => {
return h('p', {key: t}, t)
)
)
// snabbdom diff 过程中会直接更新 DOM,不再需要 patch
diff(vdom, newVdom)
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。