| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- /* @flow */
- import {
- isDef,
- isUndef
- } from 'shared/util'
- import {
- concat,
- stringifyClass,
- genClassForVnode
- } from 'web/util/index'
- function updateClass (oldVnode: any, vnode: any) {
- const el = vnode.elm
- const data: VNodeData = vnode.data
- const oldData: VNodeData = oldVnode.data
- if (
- isUndef(data.staticClass) &&
- isUndef(data.class) && (
- isUndef(oldData) || (
- isUndef(oldData.staticClass) &&
- isUndef(oldData.class)
- )
- )
- ) {
- return
- }
- let cls = genClassForVnode(vnode)
- // 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
- }
|