--- 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 { initialValue?: InitialValue } export type UseLastChangedReturn = | Readonly> | Readonly> /** * Records the timestamp of the last change * * @see https://vueuse.org/useLastChanged */ export declare function useLastChanged( source: WatchSource, options?: UseLastChangedOptions, ): Readonly> export declare function useLastChanged( source: WatchSource, options: UseLastChangedOptions | UseLastChangedOptions, ): Readonly> ```