MCPcopy Create free account
hub / github.com/ygs-code/vue / updateClass

Function updateClass

vue.js:9385–9418  ·  view source on GitHub ↗
(oldVnode, vnode)

Source from the content-addressed store, hash-verified

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,

Callers

nothing calls this directly

Calls 5

isUndefFunction · 0.85
genClassForVnodeFunction · 0.85
isDefFunction · 0.85
concatFunction · 0.85
stringifyClassFunction · 0.85

Tested by

no test coverage detected