[🛠️ Fix] Issue #32 & #33

1. [/] 为 Revive 元素添加了自定义事件触发, 从而正确处理 Remount 发生时的情况
2. [/] 为 Input 元素添加了正确的 onSubmit 事件处理
This commit is contained in:
Minoricew
2025-06-22 22:24:36 +08:00
parent d5b4c4b61e
commit 2ff4a28b70
7 changed files with 66 additions and 15 deletions

View File

@@ -168,8 +168,8 @@
observers.set(moduleKey, observer);
};
const loadResources = async (resources, type, moduleKey, isRevive) => {
if (!resources || isRevive) return [];
const loadResources = async (resources, type, moduleKey) => {
if (!resources) return [];
const resourceArray = Array.isArray(resources) ? resources : [resources];
const loadedResources = [];
@@ -232,12 +232,11 @@
const resources = new Set();
moduleResources.set(moduleKey, resources);
if (config.pageCSS) {
if (config.pageCSS && !isRevive) {
const cssResources = await loadResources(
config.pageCSS,
"css",
moduleKey,
isRevive
moduleKey
);
cssResources.forEach((resource) => resources.add(resource));
}
@@ -250,16 +249,22 @@
insertElement(target, container, config.selectorMode);
monitorParent(moduleKey, target, container, config.selectorMode);
if (config.pageScript) {
if (config.pageScript && !isRevive) {
const jsResources = await loadResources(
config.pageScript,
"js",
moduleKey,
isRevive
moduleKey
);
jsResources.forEach((resource) => resources.add(resource));
}
if (isRevive) {
const onReviveEvent = new CustomEvent(
`onLoaderElRevive:${moduleKey}`
);
document.dispatchEvent(onReviveEvent);
}
const observer = new MutationObserver(() => {
if (
!document.contains(container) &&