Add comprehensive reference documentation for: - Vitest: environments, projects/workspaces, type testing, vi utilities - Pinia: HMR, Nuxt integration, SSR setup - Vue: built-in components (Transition, Teleport, Suspense, KeepAlive) and advanced directives
87 lines
1.6 KiB
Markdown
87 lines
1.6 KiB
Markdown
---
|
|
category: Component
|
|
---
|
|
|
|
::: 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
|
|
|
|
Shorthand for binding ref to template element.
|
|
|
|
## Usage
|
|
|
|
<!-- eslint-skip -->
|
|
|
|
```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>>
|
|
```
|