Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This is a more conservative approach to simplifying props than #9767 — I'm going to work in multiple manageable (and hopefully uncontroversial) stages rather than a few chonky PRs.
Right now, we have some clever-but-complicated machinery around bindings: instead of having a setter on the props object, in some cases we 'expose' the signal via the getter so that it can be set directly by the child.
This might have made sense in a world where we would
set
the prop on every mutation and didn't want to have chains of binding setters between the mutation and the ultimate signal update, but in a #9739 world it's just wantonly confusing (to this grug-brained developer, at least). It's much simpler to just always provide a setter. Doing so allows us to delete a bunch of internal library code and get rid of some global state that we need to check on every singleget
.Before 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