Category | Component |
---|---|
Export Size | 534 B |
Last Changed | last week |
Related | useVModels |
Shorthand for v-model binding, props + emit -> ref
import { useVModel } from '@vueuse/core' export default { setup(props, { emit }) { const data = useVModel(props, 'data', emit) console.log(data.value) // props.data data.value = 'foo' // emit('update:data', 'foo') }, }
<script setup>
<script lang="ts" setup> import { useVModel } from '@vueuse/core' const props = defineProps<{ modelValue: string }>() const emit = defineEmits(['update:modelValue']) const data = useVModel(props, 'modelValue', emit) </script>
export interface UseVModelOptions<T> { /** * When passive is set to `true`, it will use `watch` to sync with props and ref. * Instead of relying on the `v-model` or `.sync` to work. * * @default false */ passive?: boolean /** * When eventName is set, it's value will be used to overwrite the emit event name. * * @default undefined */ eventName?: string /** * Attempting to check for changes of properties in a deeply nested object or array. * Apply only when `passive` option is set to `true` * * @default false */ deep?: boolean /** * Defining default value for return ref when no value is passed. * * @default undefined */ defaultValue?: T /** * Clone the props. * Accepts a custom clone function. * When setting to `true`, it will use `JSON.parse(JSON.stringify(value))` to clone. * * @default false */ clone?: boolean | CloneFn<T> /** * The hook before triggering the emit event can be used for form validation. * if false is returned, the emit event will not be triggered. * * @default undefined */ shouldEmit?: (v: T) => boolean } /** * Shorthand for v-model binding, props + emit -> ref * * @see https://vueuse.org/useVModel * @param props * @param key (default 'value' in Vue 2 and 'modelValue' in Vue 3) * @param emit */ export declare function useVModel< P extends object, K extends keyof P, Name extends string >( props: P, key?: K, emit?: (name: Name, ...args: any[]) => void, options?: UseVModelOptions<P[K]> ): Ref<UnwrapRef<P[K]>> | WritableComputedRef<P[K]>
© 2019-present Anthony Fu
Licensed under the MIT License.
https://vueuse.org/core/useVModel/