UNPKG

snabbdom

Version:

A virtual DOM library with focus on simplicity, modularity, powerful features and performance.

28 lines (24 loc) 768 B
import {VNode, VNodeData} from '../vnode'; import {Module} from './module'; function updateProps(oldVnode: VNode, vnode: VNode): void { var key: string, cur: any, old: any, elm = vnode.elm, oldProps = (oldVnode.data as VNodeData).props, props = (vnode.data as VNodeData).props; if (!oldProps && !props) return; oldProps = oldProps || {}; props = props || {}; for (key in oldProps) { if (!props[key]) { delete (elm as any)[key]; } } for (key in props) { cur = props[key]; old = oldProps[key]; if (old !== cur && (key !== 'value' || (elm as any)[key] !== cur)) { (elm as any)[key] = cur; } } } export const propsModule = {create: updateProps, update: updateProps} as Module; export default propsModule;