(oldVnode, vnode)
| 9383 | * */ |
| 9384 | |
| 9385 | function updateClass(oldVnode, vnode) { |
| 9386 | var el = vnode.elm; //获取dom节点 |
| 9387 | var data = vnode.data; //获取新的 vnode数据 |
| 9388 | var oldData = oldVnode.data; //获取旧的 oldVnode 数据 |
| 9389 | if ( |
| 9390 | isUndef(data.staticClass) && //如果没有定义静态的 staticClass |
| 9391 | isUndef(data.class) && //没有定义calss |
| 9392 | ( |
| 9393 | isUndef(oldData) || //如果旧的oldData 没有定义 |
| 9394 | ( |
| 9395 | isUndef(oldData.staticClass) && //旧的oldData staticClass class 没有定义 |
| 9396 | isUndef(oldData.class) |
| 9397 | ) |
| 9398 | ) |
| 9399 | ) { |
| 9400 | //返回去 不执行下面的代码 |
| 9401 | return |
| 9402 | } |
| 9403 | //class 转码获取vonde 中的staticClass 静态class 和class动态class转义成真实dom需要的class格式。然后返回class字符串 |
| 9404 | |
| 9405 | var cls = genClassForVnode(vnode); |
| 9406 | |
| 9407 | // handle transition classes |
| 9408 | var transitionClass = el._transitionClasses; |
| 9409 | if (isDef(transitionClass)) { |
| 9410 | cls = concat(cls, stringifyClass(transitionClass)); |
| 9411 | } |
| 9412 | |
| 9413 | // set the class _prevClass 上一个css表示是否已经更新过 |
| 9414 | if (cls !== el._prevClass) { |
| 9415 | el.setAttribute('class', cls); |
| 9416 | el._prevClass = cls; |
| 9417 | } |
| 9418 | } |
| 9419 | |
| 9420 | var klass = { |
| 9421 | create: updateClass, |
nothing calls this directly
no test coverage detected