-
Notifications
You must be signed in to change notification settings - Fork 2.3k
Open
Description
function patchProp(el, key, preValue, nextValue) {
if (isOn(key)) {
const invokers = el._vei || (el._vei = {});
const existingInvoker = invokers[key];
if (nextValue && existingInvoker) {
existingInvoker.value = nextValue; //这个invoker是一个函数,直接修改function.value是不是有点问题?我没有找到类似写法
} else {
const eventName = (key).slice(2).toLowerCase();
if (nextValue) {
const invoker = (invokers[key] = nextValue); //没用createInvoker包装函数去包装,所以invoker是一个函数
el .addEventListener(eventName, invoker);
} else {
el.removeEventListener(eventName, existingInvoker);
invokers[key] = undefined;
}
}
} else {
if (nextValue === null || nextValue === "") {
el.removeAttribute(key);
} else {
el.setAttribute(key, nextValue);
}
}
}
Metadata
Metadata
Assignees
Labels
No labels