import { isDef, isUndef } from 'shared/util' import type { KNodeData } from 'types/knode' import { concat, stringifyClass, genClassForKnode } from 'web/util/index' function updateClass(oldKnode: any, knode: any) { const el = knode.elm const data: KNodeData = knode.data const oldData: KNodeData = oldKnode.data if ( isUndef(data.staticClass) && isUndef(data.class) && (isUndef(oldData) || (isUndef(oldData.staticClass) && isUndef(oldData.class))) ) { return } let cls = genClassForKnode(knode) // handle transition classes const transitionClass = el._transitionClasses if (isDef(transitionClass)) { cls = concat(cls, stringifyClass(transitionClass)) } // set the class if (cls !== el._prevClass) { el.setAttribute('class', cls) el._prevClass = cls } } export default { create: updateClass, update: updateClass }