Skip to content

INFO

This function will be removed in future version.

Vue 3.5 introduced the useTemplateRef API which can effectively replace the functionality of templateRef, therefore we recommend using the native approach.

templateRef

Category
Export Size
283 B
Last Changed
4 days ago

Shorthand for binding ref to template element.

Usage

vue
<script lang="ts">
import { 
templateRef
} from '@vueuse/core'
export default {
setup
() {
const
target
=
templateRef
('target')
// no need to return the `target`, it will bind to the ref magically }, } </script> <template> <
div
ref
="
target
" />
</template>

With JSX/TSX

tsx
import { templateRef } from '@vueuse/core'

export default {
  setup() {
    const target = templateRef<HTMLElement | null>('target', null)

    // use string ref
    return () => <div ref="target"></div>
  },
}

<script setup>

There is no need for this when using with <script setup> since all the variables will be exposed to the template. It will be exactly the same as ref.

vue
<script setup lang="ts">
import { 
ref
} from 'vue'
const
target
=
ref
<HTMLElement | null>(null)
</script> <template> <
div
ref
="
target
" />
</template>

Type Declarations

ts
/**
 * @deprecated Use Vue's built-in `useTemplateRef` instead.
 *
 * Shorthand for binding ref to template element.
 *
 * @see https://vueuse.org/templateRef
 * @param key
 * @param initialValue
 *
 * @__NO_SIDE_EFFECTS__
 */
export declare function 
templateRef
<
T
extends HTMLElement | SVGElement |
Component
| null,
Keys
extends string = string,
>(
key
:
Keys
,
initialValue
?:
T
| null):
Readonly
<
Ref
<
T
>>

Source

SourceDocs

Contributors

NoiseFan

Changelog

No recent changes

Released under the MIT License.