feat(no-ref-as-operand): support ref detection from composable functions #2954
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.
Closes #2519
Summary
Extends the
vue/no-ref-as-operandrule to detect and report when ref objectsreturned from composable functions are used without accessing the
.valueproperty.Previously, the rule only detected direct ref declarations like
ref(0).Now it also detects ref objects returned from composable functions:
Motivation
Composable functions are a common pattern in Vue 3 for code reuse. When they return
Ref objects, developers should use the .value property to access the wrapped value.
However, the rule previously had no way to detect when these composable-returned refs
were used incorrectly.
This enhancement provides early feedback to developers, helping them follow Vue 3
best practices and preventing subtle bugs.
Implementation Details
Scope and Limitations
The detection works for composable functions defined in the same file. Due to
ESLint's single-file analysis model, composable functions imported from external
modules cannot be analyzed. This is a fundamental ESLint framework constraint.
Testing