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
64 lines
1.4 KiB
Markdown
64 lines
1.4 KiB
Markdown
---
|
|
category: State
|
|
---
|
|
|
|
# useLastChanged
|
|
|
|
Records the timestamp of the last change
|
|
|
|
## Usage
|
|
|
|
```ts
|
|
import { useLastChanged } from '@vueuse/core'
|
|
import { nextTick } from 'vue'
|
|
|
|
const a = ref(0)
|
|
const lastChanged = useLastChanged(a)
|
|
|
|
a.value = 1
|
|
|
|
await nextTick()
|
|
|
|
console.log(lastChanged.value) // 1704709379457
|
|
```
|
|
|
|
By default the change is recorded on the next tick (`watch()` with `flush: 'post'`). If you want to record the change immediately, pass `flush: 'sync'` as the second argument.
|
|
|
|
```ts
|
|
import { useLastChanged } from '@vueuse/core'
|
|
|
|
const a = ref(0)
|
|
const lastChanged = useLastChanged(a, { flush: 'sync' })
|
|
|
|
a.value = 1
|
|
|
|
console.log(lastChanged.value) // 1704709379457
|
|
```
|
|
|
|
## Type Declarations
|
|
|
|
```ts
|
|
export interface UseLastChangedOptions<
|
|
Immediate extends boolean,
|
|
InitialValue extends number | null | undefined = undefined,
|
|
> extends WatchOptions<Immediate> {
|
|
initialValue?: InitialValue
|
|
}
|
|
export type UseLastChangedReturn =
|
|
| Readonly<ShallowRef<number | null>>
|
|
| Readonly<ShallowRef<number>>
|
|
/**
|
|
* Records the timestamp of the last change
|
|
*
|
|
* @see https://vueuse.org/useLastChanged
|
|
*/
|
|
export declare function useLastChanged(
|
|
source: WatchSource,
|
|
options?: UseLastChangedOptions<false>,
|
|
): Readonly<ShallowRef<number | null>>
|
|
export declare function useLastChanged(
|
|
source: WatchSource,
|
|
options: UseLastChangedOptions<true> | UseLastChangedOptions<boolean, number>,
|
|
): Readonly<ShallowRef<number>>
|
|
```
|