luy
Version:
所谓类```React```框架就是**和React用法一模一样**的框架。其实当初制造这个框架的目的是为了能更好的学习React内部结构,了解其原理而制作的玩具。但是随着框架的渐渐成长,代码越来越多,我还是决定将其发展下去. 
48 lines (43 loc) • 1.12 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.setRef = setRef;
exports.clearRefs = clearRefs;
var _utils = require('./utils');
function setRef(Vnode, instance, domNode) {
if (instance) {
var refType = (0, _utils.typeNumber)(Vnode.ref);
if (refStrategy[refType]) {
refStrategy[refType](Vnode, Vnode.owner, domNode);
}
}
}
function clearRefs(refs) {
if (typeof refs === 'function') {
refs(null);
} else {
for (var refName in refs) {
refs[refName] = null;
}
}
}
var 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);
}
}
};