eslint-plugin-vue icon indicating copy to clipboard operation
eslint-plugin-vue copied to clipboard

Rule proposal: vue/prefer-use-template-ref

Open jordydhoker opened this issue 1 year ago • 1 comments

Please describe what the rule should do: Vue 3.5 released a new preferred method of binding to template refs, useTemplateRef. This rule suggests using the new API over the old plain ref style. It has better dev tools support, supports dynamic keys and is more self-documenting.

What category should the rule belong to?

[ ] Enforces code style (layout) [ ] Warns about a potential error (problem) [X] Suggests an alternate way of doing something (suggestion) [ ] Other (please specify:)

Provide 2-3 code examples that this rule should warn about:

<template>
  <input ref="input">
</template>

<script setup>
<!-- BAD -->
const input = ref();

<!-- GOOD -->
import { useTemplateRef } from 'vue'

const input = useTemplateRef('input')
</script>

Additional context https://vuejs.org/api/composition-api-helpers.html#usetemplateref Docs about the API https://blog.vuejs.org/posts/vue-3-5#usetemplateref Reasoning for the the new recommendation.

jordydhoker avatar Sep 10 '24 09:09 jordydhoker

Good idea! PRs welcome for that.

For reference, support for useTemplateRef is added to vue/no-unused-refs in #2541.

FloEdelmann avatar Sep 10 '24 09:09 FloEdelmann