--- category: Reactivity --- # createRef Returns a `deepRef` or `shallowRef` depending on the `deep` param. ## Usage ```ts import { createRef } from '@vueuse/core'; import { isShallow, ref } from 'vue'; const initialData = 1; const shallowData = createRef(initialData); const deepData = createRef(initialData, true); isShallow(shallowData); // true isShallow(deepData); // false ``` ## Type Declarations ```ts export type CreateRefReturn = ShallowOrDeepRef; export type ShallowOrDeepRef = D extends true ? Ref : ShallowRef; /** * Returns a `deepRef` or `shallowRef` depending on the `deep` param. * * @example createRef(1) // ShallowRef * @example createRef(1, false) // ShallowRef * @example createRef(1, true) // Ref * @example createRef("string") // ShallowRef * @example createRef<"A"|"B">("A", true) // Ref<"A"|"B"> * * @param value * @param deep * @returns the `deepRef` or `shallowRef` * * @__NO_SIDE_EFFECTS__ */ export declare function createRef( value: T, deep?: D, ): CreateRefReturn; ```