luy
Version:
所谓类```React```框架就是**和React用法一模一样**的框架。其实当初制造这个框架的目的是为了能更好的学习React内部结构,了解其原理而制作的玩具。但是随着框架的渐渐成长,代码越来越多,我还是决定将其发展下去. 
39 lines (37 loc) • 978 B
JavaScript
import { typeNumber } from './utils'
export function setRef(Vnode, instance, domNode) {
if (instance) {
const refType = typeNumber(Vnode.ref)
if (refStrategy[refType]) {
refStrategy[refType](Vnode, Vnode.owner, domNode)
}
}
}
export function clearRefs(refs) {
if (typeof refs === 'function') {
refs(null)
} else {
for (let refName in refs) {
refs[refName] = null
}
}
}
const refStrategy = {
3: function (Vnode, instance, domNode) {
if (Vnode._instance) {
instance.refs[Vnode.ref] = Vnode._instance
} else {
instance.refs[Vnode.ref] = domNode
}
},
4: function (Vnode, instance, domNode) {
refStrategy[3](Vnode, instance, domNode)
},
5: function (Vnode, instance, domNode) {
if (Vnode._instance) {
Vnode.ref(Vnode._instance)
} else {
Vnode.ref(domNode)
}
}
}