\n\n### Reproduction\n\nhttps://vueuse.org/core/useShare/\n\n### System Info\n\n```Shell\nOn Chromium 137.0.7151.104 (Official Build) (arm64)\n```\n\n### Used Package Manager\n\n\\-\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.",[3066],{"name":3067,"color":3068},"pending triage","d73a4a",4833,"BUG | `useShare` | demo in docs is broken?","2025-07-19T13:30:23Z","https://github.com/vueuse/vueuse/issues/4833",0.6788042,{"description":3075,"labels":3076,"number":3077,"owner":3019,"repository":3019,"state":3020,"title":3078,"updated_at":3079,"url":3080,"score":3081},"### Describe the bug\n\nhttps://vueuse.org/recent-updated.html 404\n\n### Reproduction\n\nhttps://vueuse.org/recent-updated.html\n\n### System Info\n\n```Shell\nchrome\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.",[],1758,"[doc] recent-updated 404","2022-07-06T08:05:51Z","https://github.com/vueuse/vueuse/issues/1758",0.67960835,{"description":3083,"labels":3084,"number":3085,"owner":3019,"repository":3019,"state":3020,"title":3086,"updated_at":3087,"url":3088,"score":3089},"### Describe the bug\n\n有时候我们网站需要根据不同屏幕做自适应,可能会采用不同分辨率等比缩放,但是和等比缩放功能一起用时,拖动元素位置就发生了偏差。\r\n具体表现:光标的位置和元素的位置就分离了。\r\n缩放代码:\r\n\u003Cimg width=\"1387\" alt=\"image\" src=\"https://user-images.githubusercontent.com/39360554/190904264-7de8f419-165c-474a-9197-6bc44b57ad29.png\">\r\n\n\n### Reproduction\n\nprod\n\n### System Info\n\n```Shell\nchrome\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.",[],2220,"useDraggable在网页缩放中拖动位置偏差","2023-05-06T04:32:42Z","https://github.com/vueuse/vueuse/issues/2220",0.67963815,{"description":3091,"labels":3092,"number":3093,"owner":3019,"repository":3019,"state":3020,"title":3094,"updated_at":3095,"url":3096,"score":3097},"### Describe the bug\n\n\r\n\n\n### Reproduction\n\nhttps://github.com/vueuse/vueuse/tree/main/playgrounds/vite\n\n### System Info\n\n```Shell\nmacOS, node:v16.17.1\n```\n\n\n### Used Package Manager\n\npnpm\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.",[],2553,"playgrounds/vite: 找不到模块“./App.vue”或其相应的类型声明。","2023-02-17T14:57:12Z","https://github.com/vueuse/vueuse/issues/2553",0.6819302,{"description":3099,"labels":3100,"number":3101,"owner":3019,"repository":3019,"state":3020,"title":3102,"updated_at":3103,"url":3104,"score":3105},"### Describe the bug\r\n\r\nUsing objects for the steps relies on the key order of the wrapper object being maintained.\r\n\r\nWhile there are possibilities that the order is entirely random, in general engines have followed certain rules rules for quite a while, with the spec being updated afterward.\r\nThe order for non-inherited properties is:\r\n\r\n- Integer-like keys in ascending order\r\n- String keys in insertion order\r\n- Symbols in insertion order\r\n\r\n\u003Cdetails>\r\n\u003Csummary>\r\nExpand for more detail on specs and such\r\n\u003C/summary>\r\n\r\nThere was almost no spec for this prior to ES2015, and it was only properly specced in ES2020.\r\nFrom [an SO answer](https://stackoverflow.com/a/5525820/15261914): \"The iteration order for objects follows [a certain set of rules](https://stackoverflow.com/a/38218582/292500) since ES2015, but it does not (always) follow the insertion order.\"\r\n\r\nFrom that second link:\r\n\r\n> The order for \"own\" (non-inherited) properties is:\r\n> \r\n> - Integer-like keys in ascending order\r\n> - String keys in insertion order\r\n> - Symbols in insertion order\r\n> \r\n> Thus, there are three segments, which may alter the insertion order (as happened in the example). And integer-like keys don't stick to the insertion order at all.\r\n> \r\n> In ES2015, only certain methods followed the order:\r\n> \r\n> - `Object.assign`\r\n> - `Object.defineProperties`\r\n> - `Object.getOwnPropertyNames`\r\n> - `Object.getOwnPropertySymbols`\r\n> - `Reflect.ownKeys`\r\n> - `JSON.parse`\r\n> - `JSON.stringify`\r\n> \r\n> As of ES2020, all others do (some in specs between ES2015 and ES2020, others in ES2020), which includes:\r\n> \r\n> - `Object.keys, Object.entries, Object.values, ...`\r\n> - `for..in`\r\n\r\n\u003C/details>\r\n\r\nWhile there is the possibility that this doesn't work in older browsers, I don't believe this is an issue, especially moving forward.\r\n\r\nHowever, if this composable is used with a combination of integer keys and non-integer keys, the order will not be maintained, as stated in the rules given above, _which is an actual issue_.\r\nE.g. \"Intro, 1, 2, 3, End\" would be changed to \"1, 2, 3, Intro, End\".\r\n\r\n~~A potential fix is to rather pass an array of objects, with each an extra property in each object to specify the name.~~ Rejected, as it requires a special property in each step object.\r\n\r\nA potential solution is to use the entries structure (ala `Object.entries()`), where the value is an array instead of an object and each property is given as a tuple of the key and object. \r\nFor example:\r\n\r\n```js\r\nconst stepper = useStepper([\r\n ['user-information', {\r\n title: 'User information',\r\n isValid: () => form.firstName && form.lastName,\r\n }],\r\n ['billing-address', {\r\n title: 'Billing address',\r\n isValid: () => !!form.billingAddress,\r\n }],\r\n ['terms', {\r\n title: 'Terms',\r\n isValid: () => form.contractAccepted === true,\r\n }],\r\n ['payment', {\r\n title: 'Payment',\r\n isValid: () => ['credit-card', 'paypal'].includes(form.payment),\r\n }],\r\n])\r\n```\r\n\r\nThis is not that different in style to the original: the top-level object is changed to an array, and for each item the key-value pair is changed to an array.\r\n\r\nIt can vene be generated using the original object structure by simply passing the original value to `Object.entries()`.\r\n\r\nIf possible, a potentially better solution is to allow both argument structures and do that conversion internally: it accepts an object as before, and the entries structure, but internally uses the entries structure and converts an object argument to it using `Object.entries()`. \r\nThe drawbacks I see are some implementation complexity and the possibility for fragmentation.\r\n\r\n### Reproduction\r\n\r\n[VueUse `useStepper` key-order issue repro on StackBlitz](https://stackblitz.com/edit/vitejs-vite-hnxybv)\r\n\r\n### System Info\r\n\r\n(Taken from the StackBlitz repro.)\r\n\r\n```Shell\r\nSystem:\r\n OS: Linux 5.0 undefined\r\n CPU: (4) 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\nBinaries:\r\n Node: 16.14.2 - /usr/local/bin/node\r\n Yarn: 1.22.10 - /bin/yarn\r\n npm: 7.17.0 - /bin/npm\r\nnpmPackages:\r\n @vueuse/core: ^8.9.0 => 8.9.0 \r\n vue: ^3.2.25 => 3.2.31\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.",[],1780,"bug(useStepper): using object steps relies on object key order being maintained","2023-09-04T15:51:03Z","https://github.com/vueuse/vueuse/issues/1780",0.6820644,["Reactive",3107],{},["Set"],["ShallowReactive",3110],{"$fTRc1wZytZ_XrK4EfJfei_Sz-An4H4Yy6syhVxH_PVJc":-1,"$f5ZJdl_cbFs812UDWDe3ufSsWdR9illUIOutsGQH-BsI":-1},"/vueuse/vueuse/3644"]