-
-
Notifications
You must be signed in to change notification settings - Fork 4.5k
feat: allow let props = $props()
, optimize prop read access
#12201
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
- allow to write `let props = $props()` - optimize read access of props.x to use `$$props` argument directly; closes #11055
🦋 Changeset detectedLatest commit: af4cb5b The changes in this PR will be included in the next version bump. This PR includes changesets to release 1 package
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 |
) { | ||
return b.id('$$props'); | ||
} | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I added this code here instead of inside serialize_get_binding
to not bloat that function even further and to not having to adjust the other callsites (AFAIK we only need that logic here)
This is also a good opportunity to not allow |
opened #12207 as a follow-up that does that; this PR should be merged first |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
I assume the props are not bindable and there is no way to change that, is that correct? |
Yes, you can only use this if you don't have fallback values or bindable props. |
let props = $props()
(helps with some use cases of Add a (singular)$prop
rune #9241)props.x
to use$$props
argument directly; closes Svelte 5: optimise prop access #11055Before submitting the PR, please make sure you do the following
feat:
,fix:
,chore:
, ordocs:
.Tests and linting
pnpm test
and lint the project withpnpm lint