Skip to content

Commit dc950da

Browse files
committed
docs: note default value breaking change to bind: in runes mode
#11400 (comment)
1 parent 36a6a6b commit dc950da

File tree

1 file changed

+2
-0
lines changed

1 file changed

+2
-0
lines changed

sites/svelte-5-preview/src/routes/docs/content/03-appendix/02-breaking-changes.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,8 @@ Exports from runes mode components cannot be bound to directly. For example, hav
171171

172172
In Svelte 4 syntax, every property (declared via `export let`) is bindable, meaning you can `bind:` to it. In runes mode, properties are not bindable by default: you need to denote bindable props with the [`$bindable`](/docs/runes#$bindable) rune.
173173

174+
If a property is bindable and has a default value (e.g. `let { foo = $bindable('bar') } = $props();`), you need to pass a non-`undefined` value to that property, if you're binding to it. This prevents undefined behavior and results in more performant code (in Svelte 4, the default value was propagated back up, which on the server and client could result in more render cycles).
175+
174176
### `accessors` option is ignored
175177

176178
Setting the `accessors` option to `true` makes properties of a component directly accessible on the component instance. In runes mode, properties are never accessible on the component instance. You can use component exports instead if you need to expose them.

0 commit comments

Comments
 (0)