diff --git a/lib/rules/script-setup-uses-vars.js b/lib/rules/script-setup-uses-vars.js index e08af640f..68e0b3fc3 100644 --- a/lib/rules/script-setup-uses-vars.js +++ b/lib/rules/script-setup-uses-vars.js @@ -104,6 +104,12 @@ module.exports = { return } markElementVariableAsUsed(`v-${node.key.name.rawName}`) + }, + /** @param {VAttribute} node */ + 'VAttribute[directive=false]'(node) { + if (node.key.name === 'ref' && node.value) { + context.markVariableAsUsed(node.value.value) + } } }, undefined, diff --git a/tests/lib/rules/script-setup-uses-vars.js b/tests/lib/rules/script-setup-uses-vars.js index aed894178..5d3c80060 100644 --- a/tests/lib/rules/script-setup-uses-vars.js +++ b/tests/lib/rules/script-setup-uses-vars.js @@ -163,6 +163,22 @@ describe('script-setup-uses-vars', () => { ecmaVersion: 2022, sourceType: 'module' } + }, + + // ref + { + filename: 'test.vue', + code: ` + + + + ` } ],