Reforced For (in list)

This commit is contained in:
2026-04-06 18:05:57 +02:00
parent 9e64161aa2
commit 5bbd2adf82
2 changed files with 20 additions and 13 deletions

View File

@@ -1,6 +1,6 @@
{
"name": "sigpro",
"version": "1.1.21",
"version": "1.1.22",
"type": "module",
"license": "MIT",
"main": "./dist/sigpro.esm.min.js",

View File

@@ -337,13 +337,21 @@ const For = (source, renderFn, keyFn, tag = "div", props = { style: "display:con
for (let i = 0; i < items.length; i++) {
const item = items[i];
const key = keyFn ? keyFn(item, i) : i;
let view = viewCache.get(key) || Render(() => renderFn(item, i));
let view = viewCache.get(key);
if (!view) {
const result = renderFn(item, i);
view = result instanceof Node
? { container: result, destroy: () => { cleanupNode(result); result.remove(); } }
: Render(() => result);
}
viewCache.delete(key);
nextCache.set(key, view);
order.push(key);
}
viewCache.forEach((view) => { view.destroy(); view.container.remove(); });
viewCache.forEach(v => v.destroy());
let anchor = marker;
for (let i = order.length - 1; i >= 0; i--) {
@@ -415,9 +423,8 @@ const Mount = (component, target) => {
return instance;
};
export const Fragment = ({ children }) => children;
const SigPro = { $, $$, Render, Watch, Tag, If, For, Router, Mount, Fragment };
const SigPro = { $, $$, Render, Watch, Tag, If, For, Router, Mount };
if (typeof window !== "undefined") {
assign(window, SigPro);