\r\n\r\n```\r\n\r\n> childView 子组件\r\n```js\r\nexport default {\r\n props: ['value'],\r\n emits: [\"input\"],\r\n setup(props, {emit}) {\r\n const nameProp = useVModel(props, \"value\", emit)\r\n useTimeout(1000, {\r\n callback: () => {\r\n nameProp.value = 'danke'\r\n }\r\n })\r\n}\r\n```\r\n\r\n2.x的项目 useVModel(props, \"value\", emit) 这样写的话 一直会出现不能更新值的问题 \r\n\r\n看了下源码 如果修改为useVModel(props, null, emit) key=null的时候 才可以测试通过 \r\n\r\n\r\n\r\n现在这样修改表现 但是觉得很奇怪。。。麻烦帮我看下这个问题 谢谢啦~\r\n```js\r\nexport default {\r\n props: ['value'],\r\n emits: [\"input\"],\r\n setup(props, {emit}) {\r\n const nameProp = useVModel(props, null , emit)\r\n useTimeout(1000, {\r\n callback: () => {\r\n nameProp.value = 'danke'\r\n }\r\n })\r\n}\r\n```\n\n### Reproduction\n\n见上述例子\n\n### System Info\n\n```Shell\nSystem:\r\n OS: Windows 10 10.0.19044\r\n CPU: (16) x64 AMD Ryzen 7 5700U with Radeon Graphics\r\n Memory: 3.35 GB / 31.35 GB\r\n Binaries:\r\n Node: 16.20.1 - D:\\nodejs\\node.EXE\r\n Yarn: 1.22.19 - ~\\AppData\\Roaming\\npm\\yarn.CMD\r\n npm: 8.18.0 - D:\\nodejs\\npm.CMD\r\n pnpm: 8.6.11 - ~\\AppData\\Roaming\\npm\\pnpm.CMD\r\n Browsers:\r\n Edge: Spartan (44.19041.1266.0), Chromium (118.0.2088.76)\r\n Internet Explorer: 11.0.19041.1566\n```\n\n\n### Used Package Manager\n\nnpm\n\n### Validations\n\n- [X] Follow our [Code of Conduct](https://github.com/vueuse/vueuse/blob/main/CODE_OF_CONDUCT.md)\n- [X] Read the [Contributing Guidelines](https://github.com/vueuse/vueuse/blob/main/CONTRIBUTING.md).\n- [X] Read the [docs](https://vueuse.org/guide).\n- [X] Check that there isn't [already an issue](https://github.com/vueuse/vueuse/issues) that reports the same bug to avoid creating a duplicate.\n- [X] Make sure this is a VueUse issue and not a framework-specific issue. For example, if it's a Vue SFC related bug, it should likely be reported to https://github.com/vuejs/core instead.\n- [X] Check that this is a concrete bug. For Q&A open a [GitHub Discussion](https://github.com/vueuse/vueuse/discussions).\n- [X] The provided reproduction is a [minimal reproducible example](https://stackoverflow.com/help/minimal-reproducible-example) of the bug.",[],3523,"vueuse","closed","vue2.x下 使用useVModel 不能双向绑定","2024-01-09T03:23:43Z","https://github.com/vueuse/vueuse/issues/3523",0.64537483,{"description":2875,"labels":2876,"number":2877,"owner":2868,"repository":2868,"state":2869,"title":2878,"updated_at":2879,"url":2880,"score":2881},"### Describe the bug\n\nI use useVModel() in a boolean-type input field. When I use the normal way, the value is not reactive. I use the value returned from useVModel in templates to calculate classes, but this won't work.\r\n\r\n```\r\nconst innerValue = useVModel(props, 'modelValue', emit);\r\n```\r\n\r\nThe innerValue variable is not reactive and can't be used.\r\n\r\nWhen I change the options to { passive: true }, this value is reactive, but it won't emit @update:model-value when the new value is false.\n\n### Reproduction\n\n-\n\n### System Info\n\n```Shell\nSystem:\r\n OS: macOS 13.1\r\n CPU: (12) x64 Intel(R) Core(TM) i7-8700B CPU @ 3.20GHz\r\n Memory: 267.65 MB / 16.00 GB\r\n Shell: 5.8.1 - /bin/zsh\r\n Binaries:\r\n Node: 18.12.1 - /usr/local/bin/node\r\n Yarn: 1.22.19 - /usr/local/bin/yarn\r\n npm: 8.19.2 - /usr/local/bin/npm\r\n Browsers:\r\n Chrome: 109.0.5414.87\r\n Firefox: 107.0.1\r\n Safari: 16.2\r\n npmPackages:\r\n @vueuse/core: ^9.10.0 => 9.10.0 \r\n vue: 3.3.0-alpha.4 => 3.3.0-alpha.4\n```\n\n\n### Used Package Manager\n\nyarn\n\n### Validations\n\n- [X] Follow our [Code of Conduct](https://github.com/vueuse/vueuse/blob/main/CODE_OF_CONDUCT.md)\n- [X] Read the [Contributing Guidelines](https://github.com/vueuse/vueuse/blob/main/CONTRIBUTING.md).\n- [X] Read the [docs](https://vueuse.org/guide).\n- [X] Check that there isn't [already an issue](https://github.com/vueuse/vueuse/issues) that reports the same bug to avoid creating a duplicate.\n- [X] Make sure this is a VueUse issue and not a framework-specific issue. For example, if it's a Vue SFC related bug, it should likely be reported to https://github.com/vuejs/core instead.\n- [X] Check that this is a concrete bug. For Q&A open a [GitHub Discussion](https://github.com/vueuse/vueuse/discussions).\n- [X] The provided reproduction is a [minimal reproducible example](https://stackoverflow.com/help/minimal-reproducible-example) of the bug.",[],2784,"Problem when using useVModel with a boolean value","2023-02-20T11:12:29Z","https://github.com/vueuse/vueuse/issues/2784",0.65111053,{"description":2883,"labels":2884,"number":2885,"owner":2868,"repository":2868,"state":2869,"title":2886,"updated_at":2887,"url":2888,"score":2889},"### Describe the bug\n\nWhen binding an object with useVmodel, changes to the values on the object will also result in changes to the props data, regardless of whether the parent component accepts the change or not.\r\n\r\nIf used as follows:\r\n```js\r\nconst task = useVModel(props, 'task', emits, {\r\n passive: true,\r\n deep: true,\r\n clone: true,\r\n});\r\n```\r\n\r\nIt may result in an infinite loop when changes are received by the parent component.\n\n### Reproduction\n\nhttps://stackblitz.com/edit/vitejs-vite-cttd23?file=src/App.vue\n\n### System Info\n\n```Shell\nSystem:\r\n OS: Linux 5.0 undefined\r\n CPU: (8) x64 Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz\r\n Memory: 0 Bytes / 0 Bytes\r\n Shell: 1.0 - /bin/jsh\r\n Binaries:\r\n Node: 16.14.2 - /usr/local/bin/node\r\n Yarn: 1.22.19 - /usr/local/bin/yarn\r\n npm: 7.17.0 - /usr/local/bin/npm\r\n npmPackages:\r\n @vueuse/core: ^10.1.2 => 10.1.2 \r\n vue: ^3.2.47 => 3.2.47\n```\n\n\n### Used Package Manager\n\nnpm\n\n### Validations\n\n- [X] Follow our [Code of Conduct](https://github.com/vueuse/vueuse/blob/main/CODE_OF_CONDUCT.md)\n- [X] Read the [Contributing Guidelines](https://github.com/vueuse/vueuse/blob/main/CONTRIBUTING.md).\n- [X] Read the [docs](https://vueuse.org/guide).\n- [X] Check that there isn't [already an issue](https://github.com/vueuse/vueuse/issues) that reports the same bug to avoid creating a duplicate.\n- [X] Make sure this is a VueUse issue and not a framework-specific issue. For example, if it's a Vue SFC related bug, it should likely be reported to https://github.com/vuejs/core instead.\n- [X] Check that this is a concrete bug. For Q&A open a [GitHub Discussion](https://github.com/vueuse/vueuse/discussions).\n- [X] The provided reproduction is a [minimal reproducible example](https://stackoverflow.com/help/minimal-reproducible-example) of the bug.",[],3062,"When useVmodel is used with an object passed as props, it will directly modify the data passed","2023-07-16T03:49:45Z","https://github.com/vueuse/vueuse/issues/3062",0.65641516,{"description":2891,"labels":2892,"number":2893,"owner":2868,"repository":2868,"state":2869,"title":2894,"updated_at":2895,"url":2896,"score":2897},"### Describe the bug\r\n\r\n**Home.vue**\r\n```vue\r\n\u003Ctemplate>\r\n \u003Cdiv class=\"home\">\r\n \u003Ch1>app-user: {{ user }}\u003C/h1>\r\n \u003Cmy-input v-model=\"user\" />\r\n \u003C/div>\r\n\u003C/template>\r\n\r\n\u003Cscript setup lang=\"ts\">\r\nimport MyInput from '../components/MyInput.vue';\r\nimport { ref } from 'vue';\r\n\r\nconst user = ref({\r\n name: 'steve',\r\n work: false,\r\n});\r\n\u003C/script>\r\n```\r\n**MyInput.vue**\r\n```vue\r\n\u003Ctemplate>\r\n \u003Cinput v-model=\"model.name\" />\r\n \u003Cdiv>\r\n \u003Cinput v-model=\"model.work\" id=\"work\" type=\"checkbox\" />\r\n \u003Clabel for=\"work\">上班\u003C/label>\r\n \u003C/div>\r\n\u003C/template>\r\n\r\n\u003Cscript setup lang=\"ts\">\r\nimport { useVModel } from '@vueuse/core';\r\n\r\ntype UserType = {\r\n name: string;\r\n work: boolean;\r\n};\r\n\r\nconst props = defineProps\u003C{\r\n modelValue: UserType;\r\n}>();\r\n\r\nconst emits = defineEmits(['update:modelValue']);\r\n\r\nconst model = useVModel(props, 'modelValue', emits, {\r\n passive: true,\r\n deep: true,\r\n});\r\n\u003C/script>\r\n```\r\nEvery time the props data is modified in the subcomponent, although the update: modelValue event is correctly triggered, the value recorded in devTools always references the latest value, rather than a snapshot of the change:\r\n\r\n\r\n### Expected\r\nCapable of accurately recording snapshots of each state change\r\n\r\n### Reproduction\r\n\r\nhttps://stackblitz.com/edit/vitejs-vite-x5gdz1?file=src%2Fpages%2FHome.vue\r\n\r\n### System Info\r\n\r\n```Shell\r\nSystem:\r\n OS: Linux 5.0 undefined\r\n CPU: (8) x64 Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz\r\n Memory: 0 Bytes / 0 Bytes\r\n Shell: 1.0 - /bin/jsh\r\n Binaries:\r\n Node: 18.18.0 - /usr/local/bin/node\r\n Yarn: 1.22.19 - /usr/local/bin/yarn\r\n npm: 9.4.2 - /usr/local/bin/npm\r\n pnpm: 8.10.5 - /usr/local/bin/pnpm\r\n npmPackages:\r\n @vueuse/core: ^9.13.0 => 9.13.0 \r\n @vueuse/rxjs: ^10.2.1 => 10.2.1 \r\n vue: ^3.2.33 => 3.2.40\r\n```\r\n\r\n\r\n### Used Package Manager\r\n\r\nnpm\r\n\r\n### Validations\r\n\r\n- [X] Follow our [Code of Conduct](https://github.com/vueuse/vueuse/blob/main/CODE_OF_CONDUCT.md)\r\n- [X] Read the [Contributing Guidelines](https://github.com/vueuse/vueuse/blob/main/CONTRIBUTING.md).\r\n- [X] Read the [docs](https://vueuse.org/guide).\r\n- [X] Check that there isn't [already an issue](https://github.com/vueuse/vueuse/issues) that reports the same bug to avoid creating a duplicate.\r\n- [X] Make sure this is a VueUse issue and not a framework-specific issue. For example, if it's a Vue SFC related bug, it should likely be reported to https://github.com/vuejs/core instead.\r\n- [X] Check that this is a concrete bug. For Q&A open a [GitHub Discussion](https://github.com/vueuse/vueuse/discussions).\r\n- [X] The provided reproduction is a [minimal reproducible example](https://stackoverflow.com/help/minimal-reproducible-example) of the bug.",[],3635,"[useVModel]:The value recorded by useVModel in the event captured by devtool is incorrect","2023-12-14T07:47:08Z","https://github.com/vueuse/vueuse/issues/3635",0.6612952,{"description":2899,"labels":2900,"number":2901,"owner":2868,"repository":2868,"state":2869,"title":2902,"updated_at":2903,"url":2904,"score":2905},"### Describe the bug\n\nIf you have set the type via generics for a `ref` and then use set with a value that might be undefined, the type of the `ref` gets extended with the type undefined. --> https://tsplay.dev/WJ575m\r\n\r\nThe variant for set that `Tobias SN` posted on discord seems more appropriate --> https://tsplay.dev/werBBN\r\n\n\n### Reproduction\n\nhttps://tsplay.dev/WJ575m\n\n### System Info\n\n```Shell\nTypeScript Playground\n```\n\n\n### Used Package Manager\n\nnpm\n\n### Validations\n\n- [X] Follow our [Code of Conduct](https://github.com/vueuse/vueuse/blob/main/CODE_OF_CONDUCT.md)\n- [X] Read the [Contributing Guidelines](https://github.com/vueuse/vueuse/blob/main/CONTRIBUTING.md).\n- [X] Read the [docs](https://vueuse.org/guide).\n- [X] Check that there isn't [already an issue](https://github.com/vueuse/vueuse/issues) that reports the same bug to avoid creating a duplicate.\n- [X] Make sure this is a VueUse issue and not a framework-specific issue. For example, if it's a Vue SFC related bug, it should likely be reported to https://github.com/vuejs/core instead.\n- [X] Check that this is a concrete bug. For Q&A open a [GitHub Discussion](https://github.com/vueuse/vueuse/discussions).\n- [X] The provided reproduction is a [minimal reproducible example](https://stackoverflow.com/help/minimal-reproducible-example) of the bug.",[],2122,"`set()` involuntarly changes type of refs","2022-10-30T22:57:37Z","https://github.com/vueuse/vueuse/issues/2122",0.6614945,{"description":2907,"labels":2908,"number":2912,"owner":2868,"repository":2868,"state":2869,"title":2913,"updated_at":2914,"url":2915,"score":2916},"### Describe the bug\n\nBUG | `useVModel` | Not working with vue2.7 `\u003Cscritp setup>`\n\nParent component\n```js\n// src/views/AboutView.vue\n\n\u003Cscript setup>\nimport {reactive, ref} from \"vue\";\nimport TestModel from \"@/components/TestModel.vue\";\n\nconst state = reactive({\n show: false,\n});\n\n// passing this as v-model also doesn't work\n// const re = ref(false)\n\n\u003C/script>\n\n\u003Ctemplate>\n \u003Cdiv>\n \u003Cdiv class=\"about\">\n \u003Cbutton @click=\"state.show = !state.show\">Show: {{ state.show ? \"Y\" : \"N\" }}\u003C/button>\n\n \u003CTestModel\n v-model=\"state.show\"\n />\n \u003C/div>\n \u003C/div>\n\u003C/template>\n\n\u003Cstyle>\n@media (min-width: 1024px) {\n .about {\n min-height: 100vh;\n display: flex;\n align-items: center;\n gap: 1rem;\n }\n}\n\u003C/style>\n\n```\nChild component\n```js\n// src/components/TestModel.vue\n\n\u003Cscript setup>\nimport {onMounted, watch} from \"vue\";\nimport {useVModel} from \"@vueuse/core\";\n\nconst props = defineProps({\n modelValue: {\n type: Boolean\n }\n});\n\nconst emit = defineEmits([\"update:modelValue\"]);\n\nconst data = useVModel(props, 'modelValue', emit, {\n deep: true,\n});\n\n// watch(() => data.value, (v) => {\n// if (v) {\n// setTimeout(() => {\n// data.value = false;\n// }, 2000)\n// }\n// })\n//\n// onMounted(() => {\n// setTimeout(() => {\n// console.log('update model value')\n// data.value = true;\n// }, 4000)\n// })\n\n\u003C/script>\n\n\u003Ctemplate>\n\u003Cdiv>\n \u003Ch1>model? {{data ? 'YES' : 'NO'}}\u003C/h1>\n \u003Ch1>props.modelValue ? {{props.modelValue ? 'YES' : 'NO'}}\u003C/h1>\n\u003C/div>\n\u003C/template>\n\n\u003Cstyle scoped>\n\n\u003C/style>\n```\n\n**Note:** on the reproduction link, go to *About* page & click on the button. You'll see that the child component is not picking the update. \n\nFYI: the project was setup using `pnpm create vue@legacy`, so this is a `vite` project.\n\n### Reproduction\n\nhttps://codesandbox.io/p/devbox/serene-fermi-jkd885\n\n### System Info\n\n```Shell\nSystem:\n OS: Linux 6.8 Ubuntu 24.04.1 LTS 24.04.1 LTS (Noble Numbat)\n CPU: (8) x64 Intel(R) Core(TM) i3-14100\n Memory: 20.57 GB / 31.03 GB\n Container: Yes\n Shell: 5.2.21 - /bin/bash\n Binaries:\n Node: 20.18.1 - ~/.nvm/versions/node/v20.18.1/bin/node\n npm: 10.8.2 - ~/.nvm/versions/node/v20.18.1/bin/npm\n pnpm: 9.15.0 - ~/.local/share/pnpm/pnpm\n Browsers:\n Brave Browser: 132.1.74.48\n Chrome: 132.0.6834.83\n npmPackages:\n @vueuse/core: ^11.3.0 => 11.3.0 \n vue: ^2.7.16 => 2.7.16\n```\n\n### Used Package Manager\n\npnpm\n\n\n### Discussion link\nhttps://github.com/vueuse/vueuse/discussions/4507\n\n### Validations\n\n- [x] Follow our [Code of Conduct](https://github.com/vueuse/vueuse/blob/main/CODE_OF_CONDUCT.md)\n- [x] Read the [Contributing Guidelines](https://github.com/vueuse/vueuse/blob/main/CONTRIBUTING.md).\n- [x] Read the [docs](https://vueuse.org/guide).\n- [x] Check that there isn't [already an issue](https://github.com/vueuse/vueuse/issues) that reports the same bug to avoid creating a duplicate.\n- [x] Make sure this is a VueUse issue and not a framework-specific issue. For example, if it's a Vue SFC related bug, it should likely be reported to https://github.com/vuejs/core instead.\n- [x] Check that this is a concrete bug. For Q&A open a [GitHub Discussion](https://github.com/vueuse/vueuse/discussions).\n- [x] The provided reproduction is a [minimal reproducible example](https://stackoverflow.com/help/minimal-reproducible-example) of the bug.",[2909],{"name":2910,"color":2911},"has workaround","4260B0",4506,"BUG | `useVModel` | Not working with vue2.7 `\u003Cscritp setup>`","2025-01-24T03:44:13Z","https://github.com/vueuse/vueuse/issues/4506",0.66709244,{"description":2918,"labels":2919,"number":2920,"owner":2868,"repository":2868,"state":2869,"title":2921,"updated_at":2922,"url":2923,"score":2924},"### Describe the bug\n\n根据声明类型,结构useVModels得到的类型声明为:Ref\u003CString | undefined> | undefined,但实际结果却只有前半段:Ref\u003CString | undefined>,没有后半段:|undefined。\r\n造成的结果就是没法根据是否传入某个prop来做判断,当然,如果传了某个值,但传入的值恰好是undefined得手,理因判断为传入了该值,只不过值是undefined。\r\n下面是打印截图。\r\n\r\n\n\n### Reproduction\n\n不需要吧?!\n\n### System Info\n\n```Shell\nBinaries:\r\n Yarn: 1.22.19 - ~\\AppData\\Roaming\\npm\\yarn.CMD\n```\n\n\n### Used Package Manager\n\nyarn\n\n### Validations\n\n- [X] Follow our [Code of Conduct](https://github.com/vueuse/vueuse/blob/main/CODE_OF_CONDUCT.md)\n- [X] Read the [Contributing Guidelines](https://github.com/vueuse/vueuse/blob/main/CONTRIBUTING.md).\n- [X] Read the [docs](https://vueuse.org/guide).\n- [X] Check that there isn't [already an issue](https://github.com/vueuse/vueuse/issues) that reports the same bug to avoid creating a duplicate.\n- [X] Make sure this is a VueUse issue and not a framework-specific issue. For example, if it's a Vue SFC related bug, it should likely be reported to https://github.com/vuejs/core instead.\n- [X] Check that this is a concrete bug. For Q&A open a [GitHub Discussion](https://github.com/vueuse/vueuse/discussions).\n- [X] The provided reproduction is a [minimal reproducible example](https://stackoverflow.com/help/minimal-reproducible-example) of the bug.",[],3645,"useVModels的实际结果vueuse本身声明的结果不一致,影响根据是否传入某个prop的判断","2023-12-14T09:01:45Z","https://github.com/vueuse/vueuse/issues/3645",0.66940534,{"description":2926,"labels":2927,"number":2928,"owner":2868,"repository":2868,"state":2869,"title":2929,"updated_at":2930,"url":2931,"score":2932},"I've struggled this for a long time since there's a type problem with this\r\n\r\nhere is what I need, I want to give the key a default value `modelValue`\r\n\r\n```ts\r\nexport function useVModel\u003CP extends object, K extends keyof P>(\r\n props: P,\r\n ++ key: K = 'modelValue',\r\n emit?: (name: string, value: any) => void,\r\n ) {\r\n const vm = getCurrentInstance()\r\n // @ts-expect-error mis-alignment with @vue/composition-api\r\n const _emit = emit || vm?.emit || vm?.$emit?.bind(vm)\r\n \r\n return computed\u003CP[K]>({\r\n get() {\r\n return props[key]\r\n },\r\n set(value) {\r\n _emit(`update:${key}`, value)\r\n },\r\n })\r\n }\r\n```\r\n\r\nbut the type issue seems can't be solved\r\nand is it unworthy since it just write less a keyname?",[],297,"Give useVModel key a default value","2021-01-22T15:49:34Z","https://github.com/vueuse/vueuse/issues/297",0.6704272,{"description":2934,"labels":2935,"number":2939,"owner":2868,"repository":2868,"state":2869,"title":2940,"updated_at":2941,"url":2942,"score":2943},"This is a new function proposal.\r\n\r\nThis function is a helps implementing `v-model=\"obj\"`.\r\n\r\n### Usage \r\n```vue\r\n\u003Ctemplate>\r\n \u003Cdiv>\r\n \u003Cinput v-model=\"a\" type=\"text\" />\r\n \u003Cinput v-model=\"b\" type=\"text\" />\r\n \u003C/div>\r\n\u003C/template>\r\n\r\n\u003Cscript lang=\"ts\">\r\nimport { defineComponent, PropType, watch } from 'vue'\r\nimport { useVModelObject } from './useVModelObject'\r\n\r\nexport default defineComponent({\r\n props: {\r\n modelValue: {\r\n type: Object as PropType\u003C{ a: string, b: string }>,\r\n required: true\r\n }\r\n },\r\n setup(props) {\r\n const data = useVModelObject(props)\r\n return { ...data }\r\n }\r\n})\r\n\u003C/script>\r\n```\r\n\r\n### Sample implementation\r\n```ts\r\nimport { computed, getCurrentInstance, WritableComputedRef } from 'vue'\r\n\r\nexport const useVModelObject = \u003CP, K extends keyof P>(\r\n props: P,\r\n key = 'modelValue' as K,\r\n emit?: (name: string, ...args: any[]) => void\r\n): { [KK in keyof P[K]]: WritableComputedRef\u003CP[K][KK]> } => {\r\n const vm = getCurrentInstance()\r\n const _emit = emit ?? vm!.emit\r\n\r\n const computedObject: any = {}\r\n for (const k of Object.keys(props[key])) {\r\n computedObject[k] = computed({\r\n get() {\r\n return (props[key] as any)[k]\r\n },\r\n set(v) {\r\n _emit(`update:${key}`, { ...props[key], [k]: v })\r\n }\r\n })\r\n }\r\n return computedObject\r\n}\r\n```\r\n",[2936],{"name":2937,"color":2938},"enhancement","a2eeef",431,"`useVModelObject`","2021-04-21T22:56:48Z","https://github.com/vueuse/vueuse/issues/431",0.6705171,{"description":2945,"labels":2946,"number":2947,"owner":2868,"repository":2868,"state":2869,"title":2948,"updated_at":2949,"url":2950,"score":2951},"### Describe the bug\n\nAccording to vue latest updates which added `defineModel` macro, I suggest to deprecate these two composables.\n\n### Reproduction\n\nNothing.\n\n### System Info\n\n```Shell\nNothing.\n```\n\n\n### Used Package Manager\n\nnpm\n\n### Validations\n\n- [X] Follow our [Code of Conduct](https://github.com/vueuse/vueuse/blob/main/CODE_OF_CONDUCT.md)\n- [X] Read the [Contributing Guidelines](https://github.com/vueuse/vueuse/blob/main/CONTRIBUTING.md).\n- [X] Read the [docs](https://vueuse.org/guide).\n- [X] Check that there isn't [already an issue](https://github.com/vueuse/vueuse/issues) that reports the same bug to avoid creating a duplicate.\n- [X] Make sure this is a VueUse issue and not a framework-specific issue. For example, if it's a Vue SFC related bug, it should likely be reported to https://github.com/vuejs/core instead.\n- [X] Check that this is a concrete bug. For Q&A open a [GitHub Discussion](https://github.com/vueuse/vueuse/discussions).\n- [X] The provided reproduction is a [minimal reproducible example](https://stackoverflow.com/help/minimal-reproducible-example) of the bug.",[],4209,"Remove useVModel and useVModels","2024-12-18T13:55:24Z","https://github.com/vueuse/vueuse/issues/4209",0.67420626,["Reactive",2953],{},["Set"],["ShallowReactive",2956],{"$fTRc1wZytZ_XrK4EfJfei_Sz-An4H4Yy6syhVxH_PVJc":-1,"$ftrgWwnTz836hLsWLt1bUCEXERcHLI-bVh5DLB9cTkrQ":-1},"/vueuse/vueuse/3546"]