第一次执行traverseNode函数的时候会进入洋葱模型的第一层,先将nodeTransforms数组中的转换函数全部执行一遍,对第一层的node节点进行第一次转换,将转换函数返回的回调函数存到第一层的exitFns数组中。经过第一次转换后v-for等指令已经被初次处理了。 然后执行traverseChildren函数,在traverseChildren函数中对当前node节点...
第一次执行traverseNode函数的时候会进入洋葱模型的第一层,先将nodeTransforms数组中的转换函数全部执行一遍,对第一层的node节点进行第一次转换,将转换函数返回的回调函数存到第一层的exitFns数组中。经过第一次转换后v-for等指令已经被初次处理了。 然后执行traverseChildren函数,在traverseChildren函数中对当前node节点...
context.currentNode= node// apply transform plugins// 节点转换函数const{ nodeTransforms } = contextconstexitFns = []for(leti =0; i < nodeTransforms.length; i++) {// 有些节点会设计一个退出函数,在处理完子节点后执行constonExit = nodeTransforms[i](node, context)if(onExit) {if(isArray(o...