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
2 months 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

Anthony Fu
Anthony Fu
SerKo
IlyaL
zhiyuanzmj
Hollis Wu
likeswinds
Alex Kozack
zhong666

Changelog

d32f8 - refactor: add @__NO_SIDE_EFFECTS__ annotations to all pure functions (#4907)
0271e - feat: mark templateRef as deprecated (#4894)
0a9ed - feat!: drop Vue 2 support, optimize bundles and clean up (#4349)
acce3 - feat: support specifying allowed keys via generic argument (#4162)

Released under the MIT License.

close