Skip to content

Fix redundant setAttribute calls#924

Open
JoviDeCroock wants to merge 2 commits into
mainfrom
fix-extraneous-updates
Open

Fix redundant setAttribute calls#924
JoviDeCroock wants to merge 2 commits into
mainfrom
fix-extraneous-updates

Conversation

@JoviDeCroock
Copy link
Copy Markdown
Member

Fixes #923

Fix redundant DOM attribute writes when a parent rerenders with unchanged signal props. The DIFFED hook no longer writes Signal references back into vnode.props, which was causing Preact's prop diff to see a mismatch (old: Signal, new: peeked value) and re-apply every signal-bound attribute on every parent rerender.

@netlify
Copy link
Copy Markdown

netlify Bot commented May 13, 2026

Deploy Preview for preact-signals-demo ready!

Name Link
🔨 Latest commit b8c95fc
🔍 Latest deploy log https://app.netlify.com/projects/preact-signals-demo/deploys/6a04a3918ef7bd000837aca6
😎 Deploy Preview https://deploy-preview-924--preact-signals-demo.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
🤖 Make changes Run an agent on this branch

To edit notification comments on pull requests, go to your Netlify project configuration.

@changeset-bot
Copy link
Copy Markdown

changeset-bot Bot commented May 13, 2026

🦋 Changeset detected

Latest commit: b8c95fc

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 2 packages
Name Type
@preact/signals Patch
preact-signals-devtools Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@JoviDeCroock JoviDeCroock force-pushed the fix-extraneous-updates branch from 800452a to 946d461 Compare May 13, 2026 16:09
@github-actions
Copy link
Copy Markdown
Contributor

Size Change: +7.25 kB (+4.11%)

Total Size: 184 kB

📦 View Changed
Filename Size Change
docs/dist/assets/bench-********.js 1.6 kB -1 B (-0.06%)
docs/dist/assets/devtools-********.js 911 B +3 B (+0.33%)
docs/dist/assets/EmbeddedDevtools-********.js 16.7 kB +15 B (+0.09%)
docs/dist/assets/index-********.js 8.37 kB +7.17 kB (+595.93%) 🆘
docs/dist/assets/signals.module-********.js 2.65 kB +12 B (+0.45%)
docs/dist/assets/Unmount-********.js 653 B +3 B (+0.46%)
docs/dist/assets/utils.module-********.js 454 B +3 B (+0.67%)
docs/dist/basic-********.js 250 B +3 B (+1.21%)
packages/devtools-ui/dist/devtools-ui.js 15.2 kB +11 B (+0.07%)
packages/devtools-ui/dist/devtools-ui.mjs 14.7 kB +11 B (+0.07%)
packages/preact/dist/signals.js 1.82 kB +14 B (+0.78%)
packages/preact/dist/signals.mjs 1.76 kB +11 B (+0.63%)
ℹ️ View Unchanged
Filename Size
docs/dist/assets/client-********.js 46.6 kB
docs/dist/assets/jsxRuntime.module-********.js 300 B
docs/dist/assets/preact.module-********.js 4.74 kB
docs/dist/assets/signals-core.module-********.js 1.89 kB
docs/dist/assets/style-********.css 5.26 kB
docs/dist/nesting-********.js 1.14 kB
docs/dist/react-********.js 241 B
packages/core/dist/signals-core.js 1.92 kB
packages/core/dist/signals-core.mjs 1.91 kB
packages/debug/dist/debug.js 4.58 kB
packages/debug/dist/debug.mjs 4.09 kB
packages/devtools-adapter/dist/devtools-adapter.js 2.17 kB
packages/devtools-adapter/dist/devtools-adapter.mjs 1.88 kB
packages/preact-transform/dist/signals-transform.js 1.3 kB
packages/preact-transform/dist/signals-transform.mjs 1.29 kB
packages/preact-transform/dist/signals-transform.umd.js 1.42 kB
packages/react-transform/dist/signals-transform.js 7.28 kB
packages/react-transform/dist/signals-transform.mjs 6.47 kB
packages/react-transform/dist/signals-transform.umd.js 7.39 kB
packages/react/dist/signals.js 214 B
packages/react/dist/signals.mjs 165 B
packages/vite-plugin/dist/vite-plugin.js 8.86 kB
packages/vite-plugin/dist/vite-plugin.mjs 7.86 kB

compressed-size-action

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Setting values to signals causes redundant updates

1 participant