ads-fe 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +99 -0
- package/dist/cli.js +545 -0
- package/dist/meta.js +93 -0
- package/package.json +43 -0
- package/skill.md +66 -0
- package/skills/core/SKILL.md +66 -0
- package/skills/core/references/app-development.md +45 -0
- package/skills/core/references/git.md +66 -0
- package/skills/core/references/monorepo.md +124 -0
- package/skills/element-plus-vue3/LICENSE.md +405 -0
- package/skills/element-plus-vue3/LICENSE.txt +202 -0
- package/skills/element-plus-vue3/SKILL.md +218 -0
- package/skills/element-plus-vue3/SYNC.md +5 -0
- package/skills/element-plus-vue3/api/component-api.md +94 -0
- package/skills/element-plus-vue3/api/global-config.md +89 -0
- package/skills/element-plus-vue3/api/props-and-events.md +101 -0
- package/skills/element-plus-vue3/examples/components/button.md +99 -0
- package/skills/element-plus-vue3/examples/components/date-picker.md +115 -0
- package/skills/element-plus-vue3/examples/components/dialog.md +106 -0
- package/skills/element-plus-vue3/examples/components/form.md +127 -0
- package/skills/element-plus-vue3/examples/components/input.md +123 -0
- package/skills/element-plus-vue3/examples/components/message.md +93 -0
- package/skills/element-plus-vue3/examples/components/overview.md +59 -0
- package/skills/element-plus-vue3/examples/components/select.md +133 -0
- package/skills/element-plus-vue3/examples/components/table.md +166 -0
- package/skills/element-plus-vue3/examples/guide/design.md +68 -0
- package/skills/element-plus-vue3/examples/guide/global-config.md +95 -0
- package/skills/element-plus-vue3/examples/guide/i18n.md +95 -0
- package/skills/element-plus-vue3/examples/guide/installation.md +110 -0
- package/skills/element-plus-vue3/examples/guide/quick-start.md +103 -0
- package/skills/element-plus-vue3/examples/guide/theme.md +78 -0
- package/skills/element-plus-vue3/templates/component-usage.md +92 -0
- package/skills/element-plus-vue3/templates/installation.md +82 -0
- package/skills/element-plus-vue3/templates/project-setup.md +83 -0
- package/skills/node/LICENSE.md +21 -0
- package/skills/node/SKILL.md +94 -0
- package/skills/node/SYNC.md +5 -0
- package/skills/node/rules/assets/graceful-server.test.ts +88 -0
- package/skills/node/rules/assets/graceful-server.ts +80 -0
- package/skills/node/rules/async-patterns.md +136 -0
- package/skills/node/rules/caching.md +198 -0
- package/skills/node/rules/environment.md +253 -0
- package/skills/node/rules/error-handling.md +164 -0
- package/skills/node/rules/flaky-tests.md +439 -0
- package/skills/node/rules/graceful-shutdown.md +204 -0
- package/skills/node/rules/logging.md +205 -0
- package/skills/node/rules/modules.md +105 -0
- package/skills/node/rules/node-modules-exploration.md +172 -0
- package/skills/node/rules/performance.md +130 -0
- package/skills/node/rules/profiling.md +183 -0
- package/skills/node/rules/streams.md +213 -0
- package/skills/node/rules/stuck-processes-and-tests.md +124 -0
- package/skills/node/rules/testing.md +218 -0
- package/skills/node/rules/typescript.md +262 -0
- package/skills/node/tile.json +11 -0
- package/skills/nuxt/GENERATION.md +5 -0
- package/skills/nuxt/LICENSE.md +21 -0
- package/skills/nuxt/SKILL.md +55 -0
- package/skills/nuxt/SYNC.md +5 -0
- package/skills/nuxt/references/advanced-hooks.md +289 -0
- package/skills/nuxt/references/advanced-layers.md +299 -0
- package/skills/nuxt/references/advanced-module-authoring.md +554 -0
- package/skills/nuxt/references/best-practices-data-fetching.md +357 -0
- package/skills/nuxt/references/best-practices-ssr.md +355 -0
- package/skills/nuxt/references/core-cli.md +263 -0
- package/skills/nuxt/references/core-config.md +162 -0
- package/skills/nuxt/references/core-data-fetching.md +236 -0
- package/skills/nuxt/references/core-deployment.md +224 -0
- package/skills/nuxt/references/core-directory-structure.md +269 -0
- package/skills/nuxt/references/core-modules.md +292 -0
- package/skills/nuxt/references/core-routing.md +226 -0
- package/skills/nuxt/references/features-components-autoimport.md +328 -0
- package/skills/nuxt/references/features-components.md +264 -0
- package/skills/nuxt/references/features-composables.md +276 -0
- package/skills/nuxt/references/features-server.md +265 -0
- package/skills/nuxt/references/features-state.md +194 -0
- package/skills/nuxt/references/rendering-modes.md +237 -0
- package/skills/pinia/GENERATION.md +5 -0
- package/skills/pinia/LICENSE.md +21 -0
- package/skills/pinia/SKILL.md +59 -0
- package/skills/pinia/SYNC.md +5 -0
- package/skills/pinia/references/advanced-hmr.md +61 -0
- package/skills/pinia/references/advanced-nuxt.md +119 -0
- package/skills/pinia/references/advanced-ssr.md +121 -0
- package/skills/pinia/references/best-practices-outside-component.md +115 -0
- package/skills/pinia/references/best-practices-testing.md +212 -0
- package/skills/pinia/references/core-stores.md +389 -0
- package/skills/pinia/references/features-composables.md +114 -0
- package/skills/pinia/references/features-composing-stores.md +134 -0
- package/skills/pinia/references/features-plugins.md +203 -0
- package/skills/pnpm/GENERATION.md +5 -0
- package/skills/pnpm/LICENSE.md +21 -0
- package/skills/pnpm/SKILL.md +42 -0
- package/skills/pnpm/SYNC.md +5 -0
- package/skills/pnpm/references/best-practices-ci.md +285 -0
- package/skills/pnpm/references/best-practices-migration.md +291 -0
- package/skills/pnpm/references/best-practices-performance.md +284 -0
- package/skills/pnpm/references/core-cli.md +229 -0
- package/skills/pnpm/references/core-config.md +188 -0
- package/skills/pnpm/references/core-store.md +179 -0
- package/skills/pnpm/references/core-workspaces.md +205 -0
- package/skills/pnpm/references/features-aliases.md +168 -0
- package/skills/pnpm/references/features-catalogs.md +159 -0
- package/skills/pnpm/references/features-hooks.md +233 -0
- package/skills/pnpm/references/features-overrides.md +184 -0
- package/skills/pnpm/references/features-patches.md +201 -0
- package/skills/pnpm/references/features-peer-deps.md +250 -0
- package/skills/slidev/LICENSE.md +21 -0
- package/skills/slidev/README.md +61 -0
- package/skills/slidev/SKILL.md +189 -0
- package/skills/slidev/SYNC.md +5 -0
- package/skills/slidev/references/animation-click-marker.md +37 -0
- package/skills/slidev/references/animation-drawing.md +68 -0
- package/skills/slidev/references/animation-rough-marker.md +53 -0
- package/skills/slidev/references/api-slide-hooks.md +37 -0
- package/skills/slidev/references/build-og-image.md +36 -0
- package/skills/slidev/references/build-pdf.md +40 -0
- package/skills/slidev/references/build-remote-assets.md +34 -0
- package/skills/slidev/references/build-seo-meta.md +43 -0
- package/skills/slidev/references/code-groups.md +64 -0
- package/skills/slidev/references/code-import-snippet.md +55 -0
- package/skills/slidev/references/code-line-highlighting.md +50 -0
- package/skills/slidev/references/code-line-numbers.md +46 -0
- package/skills/slidev/references/code-magic-move.md +57 -0
- package/skills/slidev/references/code-max-height.md +37 -0
- package/skills/slidev/references/code-twoslash.md +42 -0
- package/skills/slidev/references/core-animations.md +196 -0
- package/skills/slidev/references/core-cli.md +140 -0
- package/skills/slidev/references/core-components.md +197 -0
- package/skills/slidev/references/core-exporting.md +148 -0
- package/skills/slidev/references/core-frontmatter.md +195 -0
- package/skills/slidev/references/core-global-context.md +155 -0
- package/skills/slidev/references/core-headmatter.md +188 -0
- package/skills/slidev/references/core-hosting.md +152 -0
- package/skills/slidev/references/core-layouts.md +286 -0
- package/skills/slidev/references/core-syntax.md +155 -0
- package/skills/slidev/references/diagram-latex.md +55 -0
- package/skills/slidev/references/diagram-mermaid.md +44 -0
- package/skills/slidev/references/diagram-plantuml.md +45 -0
- package/skills/slidev/references/editor-monaco-run.md +44 -0
- package/skills/slidev/references/editor-monaco-write.md +24 -0
- package/skills/slidev/references/editor-monaco.md +50 -0
- package/skills/slidev/references/editor-prettier.md +40 -0
- package/skills/slidev/references/editor-side.md +23 -0
- package/skills/slidev/references/editor-vscode.md +55 -0
- package/skills/slidev/references/layout-canvas-size.md +25 -0
- package/skills/slidev/references/layout-draggable.md +57 -0
- package/skills/slidev/references/layout-global-layers.md +50 -0
- package/skills/slidev/references/layout-slots.md +75 -0
- package/skills/slidev/references/layout-transform.md +33 -0
- package/skills/slidev/references/layout-zoom.md +39 -0
- package/skills/slidev/references/presenter-notes-ruby.md +35 -0
- package/skills/slidev/references/presenter-recording.md +30 -0
- package/skills/slidev/references/presenter-remote.md +40 -0
- package/skills/slidev/references/presenter-timer.md +34 -0
- package/skills/slidev/references/style-direction.md +34 -0
- package/skills/slidev/references/style-icons.md +46 -0
- package/skills/slidev/references/style-scoped.md +50 -0
- package/skills/slidev/references/syntax-block-frontmatter.md +39 -0
- package/skills/slidev/references/syntax-comark.md +51 -0
- package/skills/slidev/references/syntax-frontmatter-merging.md +49 -0
- package/skills/slidev/references/syntax-importing-slides.md +60 -0
- package/skills/slidev/references/tool-eject-theme.md +27 -0
- package/skills/tsdown/LICENSE.md +22 -0
- package/skills/tsdown/README.md +77 -0
- package/skills/tsdown/SKILL.md +416 -0
- package/skills/tsdown/SYNC.md +5 -0
- package/skills/tsdown/references/README.md +139 -0
- package/skills/tsdown/references/advanced-benchmark.md +8 -0
- package/skills/tsdown/references/advanced-ci.md +89 -0
- package/skills/tsdown/references/advanced-hooks.md +363 -0
- package/skills/tsdown/references/advanced-plugins.md +381 -0
- package/skills/tsdown/references/advanced-programmatic.md +378 -0
- package/skills/tsdown/references/advanced-rolldown-options.md +117 -0
- package/skills/tsdown/references/guide-getting-started.md +183 -0
- package/skills/tsdown/references/guide-introduction.md +42 -0
- package/skills/tsdown/references/guide-migrate-from-tsup.md +199 -0
- package/skills/tsdown/references/option-cjs-default.md +98 -0
- package/skills/tsdown/references/option-cleaning.md +275 -0
- package/skills/tsdown/references/option-config-file.md +291 -0
- package/skills/tsdown/references/option-css.md +301 -0
- package/skills/tsdown/references/option-dependencies.md +385 -0
- package/skills/tsdown/references/option-dts.md +251 -0
- package/skills/tsdown/references/option-entry.md +211 -0
- package/skills/tsdown/references/option-exe.md +120 -0
- package/skills/tsdown/references/option-lint.md +127 -0
- package/skills/tsdown/references/option-log-level.md +91 -0
- package/skills/tsdown/references/option-minification.md +177 -0
- package/skills/tsdown/references/option-output-directory.md +272 -0
- package/skills/tsdown/references/option-output-format.md +183 -0
- package/skills/tsdown/references/option-package-exports.md +320 -0
- package/skills/tsdown/references/option-platform.md +256 -0
- package/skills/tsdown/references/option-root.md +88 -0
- package/skills/tsdown/references/option-shims.md +299 -0
- package/skills/tsdown/references/option-sourcemap.md +301 -0
- package/skills/tsdown/references/option-target.md +222 -0
- package/skills/tsdown/references/option-tree-shaking.md +335 -0
- package/skills/tsdown/references/option-unbundle.md +310 -0
- package/skills/tsdown/references/option-watch-mode.md +261 -0
- package/skills/tsdown/references/recipe-react.md +338 -0
- package/skills/tsdown/references/recipe-solid.md +42 -0
- package/skills/tsdown/references/recipe-svelte.md +54 -0
- package/skills/tsdown/references/recipe-vue.md +387 -0
- package/skills/tsdown/references/recipe-wasm.md +125 -0
- package/skills/tsdown/references/reference-cli.md +472 -0
- package/skills/turborepo/LICENSE.md +7 -0
- package/skills/turborepo/SKILL.md +951 -0
- package/skills/turborepo/SYNC.md +5 -0
- package/skills/turborepo/command/turborepo.md +70 -0
- package/skills/turborepo/references/best-practices/RULE.md +241 -0
- package/skills/turborepo/references/best-practices/dependencies.md +246 -0
- package/skills/turborepo/references/best-practices/packages.md +335 -0
- package/skills/turborepo/references/best-practices/structure.md +297 -0
- package/skills/turborepo/references/boundaries/RULE.md +126 -0
- package/skills/turborepo/references/caching/RULE.md +153 -0
- package/skills/turborepo/references/caching/gotchas.md +190 -0
- package/skills/turborepo/references/caching/remote-cache.md +127 -0
- package/skills/turborepo/references/ci/RULE.md +79 -0
- package/skills/turborepo/references/ci/github-actions.md +162 -0
- package/skills/turborepo/references/ci/patterns.md +145 -0
- package/skills/turborepo/references/ci/vercel.md +103 -0
- package/skills/turborepo/references/cli/RULE.md +100 -0
- package/skills/turborepo/references/cli/commands.md +297 -0
- package/skills/turborepo/references/configuration/RULE.md +235 -0
- package/skills/turborepo/references/configuration/global-options.md +239 -0
- package/skills/turborepo/references/configuration/gotchas.md +368 -0
- package/skills/turborepo/references/configuration/tasks.md +325 -0
- package/skills/turborepo/references/environment/RULE.md +123 -0
- package/skills/turborepo/references/environment/gotchas.md +175 -0
- package/skills/turborepo/references/environment/modes.md +101 -0
- package/skills/turborepo/references/filtering/RULE.md +148 -0
- package/skills/turborepo/references/filtering/patterns.md +152 -0
- package/skills/turborepo/references/watch/RULE.md +99 -0
- package/skills/vite/GENERATION.md +5 -0
- package/skills/vite/LICENSE.md +21 -0
- package/skills/vite/SKILL.md +72 -0
- package/skills/vite/SYNC.md +5 -0
- package/skills/vite/references/build-and-ssr.md +164 -0
- package/skills/vite/references/core-config.md +162 -0
- package/skills/vite/references/core-features.md +205 -0
- package/skills/vite/references/core-plugin-api.md +235 -0
- package/skills/vite/references/environment-api.md +108 -0
- package/skills/vite/references/rolldown-migration.md +157 -0
- package/skills/vitepress/GENERATION.md +5 -0
- package/skills/vitepress/LICENSE.md +21 -0
- package/skills/vitepress/SKILL.md +65 -0
- package/skills/vitepress/SYNC.md +5 -0
- package/skills/vitepress/references/advanced-i18n.md +299 -0
- package/skills/vitepress/references/advanced-ssr.md +228 -0
- package/skills/vitepress/references/core-cli.md +119 -0
- package/skills/vitepress/references/core-config.md +189 -0
- package/skills/vitepress/references/core-markdown.md +277 -0
- package/skills/vitepress/references/core-routing.md +169 -0
- package/skills/vitepress/references/features-code-blocks.md +243 -0
- package/skills/vitepress/references/features-data-loading.md +220 -0
- package/skills/vitepress/references/features-dynamic-routes.md +235 -0
- package/skills/vitepress/references/features-vue.md +224 -0
- package/skills/vitepress/references/recipes-deploy.md +240 -0
- package/skills/vitepress/references/theme-config.md +315 -0
- package/skills/vitepress/references/theme-custom.md +269 -0
- package/skills/vitepress/references/theme-customization.md +290 -0
- package/skills/vitest/GENERATION.md +5 -0
- package/skills/vitest/LICENSE.md +21 -0
- package/skills/vitest/SKILL.md +52 -0
- package/skills/vitest/SYNC.md +5 -0
- package/skills/vitest/references/advanced-environments.md +264 -0
- package/skills/vitest/references/advanced-projects.md +300 -0
- package/skills/vitest/references/advanced-type-testing.md +237 -0
- package/skills/vitest/references/advanced-vi.md +249 -0
- package/skills/vitest/references/core-cli.md +166 -0
- package/skills/vitest/references/core-config.md +174 -0
- package/skills/vitest/references/core-describe.md +193 -0
- package/skills/vitest/references/core-expect.md +219 -0
- package/skills/vitest/references/core-hooks.md +244 -0
- package/skills/vitest/references/core-test-api.md +233 -0
- package/skills/vitest/references/features-concurrency.md +250 -0
- package/skills/vitest/references/features-context.md +238 -0
- package/skills/vitest/references/features-coverage.md +207 -0
- package/skills/vitest/references/features-filtering.md +211 -0
- package/skills/vitest/references/features-mocking.md +265 -0
- package/skills/vitest/references/features-snapshots.md +207 -0
- package/skills/vue/GENERATION.md +5 -0
- package/skills/vue/LICENSE.md +21 -0
- package/skills/vue/SKILL.md +84 -0
- package/skills/vue/SYNC.md +5 -0
- package/skills/vue/references/advanced-patterns.md +314 -0
- package/skills/vue/references/core-new-apis.md +264 -0
- package/skills/vue/references/script-setup-macros.md +204 -0
- package/skills/vue-best-practices/LICENSE.md +21 -0
- package/skills/vue-best-practices/SKILL.md +154 -0
- package/skills/vue-best-practices/SYNC.md +5 -0
- package/skills/vue-best-practices/references/animation-class-based-technique.md +254 -0
- package/skills/vue-best-practices/references/animation-state-driven-technique.md +291 -0
- package/skills/vue-best-practices/references/component-async.md +97 -0
- package/skills/vue-best-practices/references/component-data-flow.md +307 -0
- package/skills/vue-best-practices/references/component-fallthrough-attrs.md +174 -0
- package/skills/vue-best-practices/references/component-keep-alive.md +137 -0
- package/skills/vue-best-practices/references/component-slots.md +216 -0
- package/skills/vue-best-practices/references/component-suspense.md +228 -0
- package/skills/vue-best-practices/references/component-teleport.md +108 -0
- package/skills/vue-best-practices/references/component-transition-group.md +128 -0
- package/skills/vue-best-practices/references/component-transition.md +125 -0
- package/skills/vue-best-practices/references/composables.md +290 -0
- package/skills/vue-best-practices/references/directives.md +162 -0
- package/skills/vue-best-practices/references/perf-avoid-component-abstraction-in-lists.md +159 -0
- package/skills/vue-best-practices/references/perf-v-once-v-memo-directives.md +182 -0
- package/skills/vue-best-practices/references/perf-virtualize-large-lists.md +187 -0
- package/skills/vue-best-practices/references/plugins.md +166 -0
- package/skills/vue-best-practices/references/reactivity.md +344 -0
- package/skills/vue-best-practices/references/render-functions.md +201 -0
- package/skills/vue-best-practices/references/sfc.md +310 -0
- package/skills/vue-best-practices/references/state-management.md +135 -0
- package/skills/vue-best-practices/references/updated-hook-performance.md +187 -0
- package/skills/vue-router-best-practices/LICENSE.md +21 -0
- package/skills/vue-router-best-practices/SKILL.md +23 -0
- package/skills/vue-router-best-practices/SYNC.md +5 -0
- package/skills/vue-router-best-practices/reference/router-beforeenter-no-param-trigger.md +167 -0
- package/skills/vue-router-best-practices/reference/router-beforerouteenter-no-this.md +176 -0
- package/skills/vue-router-best-practices/reference/router-guard-async-await-pattern.md +227 -0
- package/skills/vue-router-best-practices/reference/router-navigation-guard-infinite-loop.md +187 -0
- package/skills/vue-router-best-practices/reference/router-navigation-guard-next-deprecated.md +150 -0
- package/skills/vue-router-best-practices/reference/router-param-change-no-lifecycle.md +181 -0
- package/skills/vue-router-best-practices/reference/router-simple-routing-cleanup.md +209 -0
- package/skills/vue-router-best-practices/reference/router-use-vue-router-for-production.md +183 -0
- package/skills/vue-testing-best-practices/LICENSE.md +21 -0
- package/skills/vue-testing-best-practices/SKILL.md +29 -0
- package/skills/vue-testing-best-practices/SYNC.md +5 -0
- package/skills/vue-testing-best-practices/reference/async-component-testing.md +163 -0
- package/skills/vue-testing-best-practices/reference/teleport-testing-complexity.md +158 -0
- package/skills/vue-testing-best-practices/reference/testing-async-await-flushpromises.md +175 -0
- package/skills/vue-testing-best-practices/reference/testing-browser-vs-node-runners.md +208 -0
- package/skills/vue-testing-best-practices/reference/testing-component-blackbox-approach.md +144 -0
- package/skills/vue-testing-best-practices/reference/testing-composables-helper-wrapper.md +238 -0
- package/skills/vue-testing-best-practices/reference/testing-e2e-playwright-recommended.md +242 -0
- package/skills/vue-testing-best-practices/reference/testing-no-snapshot-only.md +197 -0
- package/skills/vue-testing-best-practices/reference/testing-pinia-store-setup.md +228 -0
- package/skills/vue-testing-best-practices/reference/testing-suspense-async-components.md +229 -0
- package/skills/vue-testing-best-practices/reference/testing-vitest-recommended-for-vue.md +204 -0
- package/skills/vueuse-functions/LICENSE.md +21 -0
- package/skills/vueuse-functions/SKILL.md +419 -0
- package/skills/vueuse-functions/SYNC.md +5 -0
- package/skills/vueuse-functions/references/computedAsync.md +195 -0
- package/skills/vueuse-functions/references/computedEager.md +62 -0
- package/skills/vueuse-functions/references/computedInject.md +137 -0
- package/skills/vueuse-functions/references/computedWithControl.md +98 -0
- package/skills/vueuse-functions/references/createEventHook.md +86 -0
- package/skills/vueuse-functions/references/createGenericProjection.md +25 -0
- package/skills/vueuse-functions/references/createGlobalState.md +95 -0
- package/skills/vueuse-functions/references/createInjectionState.md +226 -0
- package/skills/vueuse-functions/references/createProjection.md +31 -0
- package/skills/vueuse-functions/references/createRef.md +54 -0
- package/skills/vueuse-functions/references/createReusableTemplate.md +361 -0
- package/skills/vueuse-functions/references/createSharedComposable.md +42 -0
- package/skills/vueuse-functions/references/createTemplatePromise.md +306 -0
- package/skills/vueuse-functions/references/createUnrefFn.md +51 -0
- package/skills/vueuse-functions/references/extendRef.md +76 -0
- package/skills/vueuse-functions/references/from.md +80 -0
- package/skills/vueuse-functions/references/get.md +30 -0
- package/skills/vueuse-functions/references/injectLocal.md +35 -0
- package/skills/vueuse-functions/references/isDefined.md +31 -0
- package/skills/vueuse-functions/references/logicAnd.md +40 -0
- package/skills/vueuse-functions/references/logicNot.md +36 -0
- package/skills/vueuse-functions/references/logicOr.md +40 -0
- package/skills/vueuse-functions/references/makeDestructurable.md +41 -0
- package/skills/vueuse-functions/references/onClickOutside.md +228 -0
- package/skills/vueuse-functions/references/onElementRemoval.md +88 -0
- package/skills/vueuse-functions/references/onKeyStroke.md +212 -0
- package/skills/vueuse-functions/references/onLongPress.md +235 -0
- package/skills/vueuse-functions/references/onStartTyping.md +53 -0
- package/skills/vueuse-functions/references/provideLocal.md +37 -0
- package/skills/vueuse-functions/references/reactify.md +144 -0
- package/skills/vueuse-functions/references/reactifyObject.md +62 -0
- package/skills/vueuse-functions/references/reactiveComputed.md +34 -0
- package/skills/vueuse-functions/references/reactiveOmit.md +86 -0
- package/skills/vueuse-functions/references/reactivePick.md +106 -0
- package/skills/vueuse-functions/references/refAutoReset.md +46 -0
- package/skills/vueuse-functions/references/refDebounced.md +81 -0
- package/skills/vueuse-functions/references/refDefault.md +36 -0
- package/skills/vueuse-functions/references/refManualReset.md +48 -0
- package/skills/vueuse-functions/references/refThrottled.md +99 -0
- package/skills/vueuse-functions/references/refWithControl.md +146 -0
- package/skills/vueuse-functions/references/set.md +30 -0
- package/skills/vueuse-functions/references/syncRef.md +195 -0
- package/skills/vueuse-functions/references/syncRefs.md +128 -0
- package/skills/vueuse-functions/references/templateRef.md +86 -0
- package/skills/vueuse-functions/references/toObserver.md +38 -0
- package/skills/vueuse-functions/references/toReactive.md +41 -0
- package/skills/vueuse-functions/references/toRef.md +74 -0
- package/skills/vueuse-functions/references/toRefs.md +78 -0
- package/skills/vueuse-functions/references/tryOnBeforeMount.md +34 -0
- package/skills/vueuse-functions/references/tryOnBeforeUnmount.md +32 -0
- package/skills/vueuse-functions/references/tryOnMounted.md +34 -0
- package/skills/vueuse-functions/references/tryOnScopeDispose.md +31 -0
- package/skills/vueuse-functions/references/tryOnUnmounted.md +32 -0
- package/skills/vueuse-functions/references/unrefElement.md +54 -0
- package/skills/vueuse-functions/references/until.md +161 -0
- package/skills/vueuse-functions/references/useAbs.md +31 -0
- package/skills/vueuse-functions/references/useActiveElement.md +86 -0
- package/skills/vueuse-functions/references/useAnimate.md +180 -0
- package/skills/vueuse-functions/references/useArrayDifference.md +84 -0
- package/skills/vueuse-functions/references/useArrayEvery.md +59 -0
- package/skills/vueuse-functions/references/useArrayFilter.md +63 -0
- package/skills/vueuse-functions/references/useArrayFind.md +50 -0
- package/skills/vueuse-functions/references/useArrayFindIndex.md +59 -0
- package/skills/vueuse-functions/references/useArrayFindLast.md +52 -0
- package/skills/vueuse-functions/references/useArrayIncludes.md +63 -0
- package/skills/vueuse-functions/references/useArrayJoin.md +74 -0
- package/skills/vueuse-functions/references/useArrayMap.md +59 -0
- package/skills/vueuse-functions/references/useArrayReduce.md +81 -0
- package/skills/vueuse-functions/references/useArraySome.md +59 -0
- package/skills/vueuse-functions/references/useArrayUnique.md +76 -0
- package/skills/vueuse-functions/references/useAsyncQueue.md +136 -0
- package/skills/vueuse-functions/references/useAsyncState.md +185 -0
- package/skills/vueuse-functions/references/useAsyncValidator.md +70 -0
- package/skills/vueuse-functions/references/useAuth.md +123 -0
- package/skills/vueuse-functions/references/useAverage.md +36 -0
- package/skills/vueuse-functions/references/useAxios.md +325 -0
- package/skills/vueuse-functions/references/useBase64.md +136 -0
- package/skills/vueuse-functions/references/useBattery.md +80 -0
- package/skills/vueuse-functions/references/useBluetooth.md +174 -0
- package/skills/vueuse-functions/references/useBreakpoints.md +176 -0
- package/skills/vueuse-functions/references/useBroadcastChannel.md +73 -0
- package/skills/vueuse-functions/references/useBrowserLocation.md +56 -0
- package/skills/vueuse-functions/references/useCached.md +52 -0
- package/skills/vueuse-functions/references/useCeil.md +31 -0
- package/skills/vueuse-functions/references/useChangeCase.md +79 -0
- package/skills/vueuse-functions/references/useClamp.md +85 -0
- package/skills/vueuse-functions/references/useClipboard.md +122 -0
- package/skills/vueuse-functions/references/useClipboardItems.md +93 -0
- package/skills/vueuse-functions/references/useCloned.md +91 -0
- package/skills/vueuse-functions/references/useColorMode.md +172 -0
- package/skills/vueuse-functions/references/useConfirmDialog.md +159 -0
- package/skills/vueuse-functions/references/useCookies.md +162 -0
- package/skills/vueuse-functions/references/useCountdown.md +105 -0
- package/skills/vueuse-functions/references/useCounter.md +86 -0
- package/skills/vueuse-functions/references/useCssSupports.md +33 -0
- package/skills/vueuse-functions/references/useCssVar.md +50 -0
- package/skills/vueuse-functions/references/useCurrentElement.md +61 -0
- package/skills/vueuse-functions/references/useCycleList.md +75 -0
- package/skills/vueuse-functions/references/useDark.md +142 -0
- package/skills/vueuse-functions/references/useDateFormat.md +145 -0
- package/skills/vueuse-functions/references/useDebounceFn.md +100 -0
- package/skills/vueuse-functions/references/useDebouncedRefHistory.md +40 -0
- package/skills/vueuse-functions/references/useDeviceMotion.md +80 -0
- package/skills/vueuse-functions/references/useDeviceOrientation.md +64 -0
- package/skills/vueuse-functions/references/useDevicePixelRatio.md +47 -0
- package/skills/vueuse-functions/references/useDevicesList.md +89 -0
- package/skills/vueuse-functions/references/useDisplayMedia.md +67 -0
- package/skills/vueuse-functions/references/useDocumentVisibility.md +44 -0
- package/skills/vueuse-functions/references/useDraggable.md +289 -0
- package/skills/vueuse-functions/references/useDrauu.md +65 -0
- package/skills/vueuse-functions/references/useDropZone.md +83 -0
- package/skills/vueuse-functions/references/useElementBounding.md +131 -0
- package/skills/vueuse-functions/references/useElementByPoint.md +46 -0
- package/skills/vueuse-functions/references/useElementHover.md +79 -0
- package/skills/vueuse-functions/references/useElementSize.md +79 -0
- package/skills/vueuse-functions/references/useElementVisibility.md +163 -0
- package/skills/vueuse-functions/references/useEventBus.md +101 -0
- package/skills/vueuse-functions/references/useEventListener.md +226 -0
- package/skills/vueuse-functions/references/useEventSource.md +204 -0
- package/skills/vueuse-functions/references/useExtractedObservable.md +198 -0
- package/skills/vueuse-functions/references/useEyeDropper.md +72 -0
- package/skills/vueuse-functions/references/useFavicon.md +69 -0
- package/skills/vueuse-functions/references/useFetch.md +546 -0
- package/skills/vueuse-functions/references/useFileDialog.md +91 -0
- package/skills/vueuse-functions/references/useFileSystemAccess.md +161 -0
- package/skills/vueuse-functions/references/useFirestore.md +129 -0
- package/skills/vueuse-functions/references/useFloor.md +31 -0
- package/skills/vueuse-functions/references/useFocus.md +99 -0
- package/skills/vueuse-functions/references/useFocusTrap.md +245 -0
- package/skills/vueuse-functions/references/useFocusWithin.md +57 -0
- package/skills/vueuse-functions/references/useFps.md +28 -0
- package/skills/vueuse-functions/references/useFullscreen.md +74 -0
- package/skills/vueuse-functions/references/useFuse.md +75 -0
- package/skills/vueuse-functions/references/useGamepad.md +176 -0
- package/skills/vueuse-functions/references/useGeolocation.md +63 -0
- package/skills/vueuse-functions/references/useIDBKeyval.md +93 -0
- package/skills/vueuse-functions/references/useIdle.md +88 -0
- package/skills/vueuse-functions/references/useImage.md +90 -0
- package/skills/vueuse-functions/references/useInfiniteScroll.md +156 -0
- package/skills/vueuse-functions/references/useIntersectionObserver.md +117 -0
- package/skills/vueuse-functions/references/useInterval.md +112 -0
- package/skills/vueuse-functions/references/useIntervalFn.md +50 -0
- package/skills/vueuse-functions/references/useIpcRenderer.md +144 -0
- package/skills/vueuse-functions/references/useIpcRendererInvoke.md +58 -0
- package/skills/vueuse-functions/references/useIpcRendererOn.md +52 -0
- package/skills/vueuse-functions/references/useJwt.md +57 -0
- package/skills/vueuse-functions/references/useKeyModifier.md +87 -0
- package/skills/vueuse-functions/references/useLastChanged.md +63 -0
- package/skills/vueuse-functions/references/useLocalStorage.md +41 -0
- package/skills/vueuse-functions/references/useMagicKeys.md +245 -0
- package/skills/vueuse-functions/references/useManualRefHistory.md +204 -0
- package/skills/vueuse-functions/references/useMath.md +47 -0
- package/skills/vueuse-functions/references/useMax.md +36 -0
- package/skills/vueuse-functions/references/useMediaControls.md +201 -0
- package/skills/vueuse-functions/references/useMediaQuery.md +53 -0
- package/skills/vueuse-functions/references/useMemoize.md +175 -0
- package/skills/vueuse-functions/references/useMemory.md +70 -0
- package/skills/vueuse-functions/references/useMin.md +36 -0
- package/skills/vueuse-functions/references/useMounted.md +38 -0
- package/skills/vueuse-functions/references/useMouse.md +113 -0
- package/skills/vueuse-functions/references/useMouseInElement.md +132 -0
- package/skills/vueuse-functions/references/useMousePressed.md +116 -0
- package/skills/vueuse-functions/references/useMutationObserver.md +60 -0
- package/skills/vueuse-functions/references/useNProgress.md +78 -0
- package/skills/vueuse-functions/references/useNavigatorLanguage.md +57 -0
- package/skills/vueuse-functions/references/useNetwork.md +106 -0
- package/skills/vueuse-functions/references/useNow.md +83 -0
- package/skills/vueuse-functions/references/useObjectUrl.md +55 -0
- package/skills/vueuse-functions/references/useObservable.md +91 -0
- package/skills/vueuse-functions/references/useOffsetPagination.md +199 -0
- package/skills/vueuse-functions/references/useOnline.md +41 -0
- package/skills/vueuse-functions/references/usePageLeave.md +43 -0
- package/skills/vueuse-functions/references/useParallax.md +58 -0
- package/skills/vueuse-functions/references/useParentElement.md +54 -0
- package/skills/vueuse-functions/references/usePerformanceObserver.md +48 -0
- package/skills/vueuse-functions/references/usePermission.md +78 -0
- package/skills/vueuse-functions/references/usePointer.md +91 -0
- package/skills/vueuse-functions/references/usePointerLock.md +59 -0
- package/skills/vueuse-functions/references/usePointerSwipe.md +80 -0
- package/skills/vueuse-functions/references/usePrecision.md +49 -0
- package/skills/vueuse-functions/references/usePreferredColorScheme.md +42 -0
- package/skills/vueuse-functions/references/usePreferredContrast.md +42 -0
- package/skills/vueuse-functions/references/usePreferredDark.md +41 -0
- package/skills/vueuse-functions/references/usePreferredLanguages.md +41 -0
- package/skills/vueuse-functions/references/usePreferredReducedMotion.md +42 -0
- package/skills/vueuse-functions/references/usePreferredReducedTransparency.md +42 -0
- package/skills/vueuse-functions/references/usePrevious.md +40 -0
- package/skills/vueuse-functions/references/useProjection.md +38 -0
- package/skills/vueuse-functions/references/useQRCode.md +53 -0
- package/skills/vueuse-functions/references/useRTDB.md +83 -0
- package/skills/vueuse-functions/references/useRafFn.md +68 -0
- package/skills/vueuse-functions/references/useRefHistory.md +285 -0
- package/skills/vueuse-functions/references/useResizeObserver.md +108 -0
- package/skills/vueuse-functions/references/useRound.md +31 -0
- package/skills/vueuse-functions/references/useRouteHash.md +27 -0
- package/skills/vueuse-functions/references/useRouteParams.md +38 -0
- package/skills/vueuse-functions/references/useRouteQuery.md +79 -0
- package/skills/vueuse-functions/references/useSSRWidth.md +47 -0
- package/skills/vueuse-functions/references/useScreenOrientation.md +98 -0
- package/skills/vueuse-functions/references/useScreenSafeArea.md +60 -0
- package/skills/vueuse-functions/references/useScriptTag.md +116 -0
- package/skills/vueuse-functions/references/useScroll.md +238 -0
- package/skills/vueuse-functions/references/useScrollLock.md +66 -0
- package/skills/vueuse-functions/references/useSessionStorage.md +41 -0
- package/skills/vueuse-functions/references/useShare.md +67 -0
- package/skills/vueuse-functions/references/useSortable.md +276 -0
- package/skills/vueuse-functions/references/useSorted.md +90 -0
- package/skills/vueuse-functions/references/useSpeechRecognition.md +90 -0
- package/skills/vueuse-functions/references/useSpeechSynthesis.md +101 -0
- package/skills/vueuse-functions/references/useStepper.md +137 -0
- package/skills/vueuse-functions/references/useStorage.md +278 -0
- package/skills/vueuse-functions/references/useStorageAsync.md +136 -0
- package/skills/vueuse-functions/references/useStyleTag.md +131 -0
- package/skills/vueuse-functions/references/useSubject.md +77 -0
- package/skills/vueuse-functions/references/useSubscription.md +33 -0
- package/skills/vueuse-functions/references/useSum.md +36 -0
- package/skills/vueuse-functions/references/useSupported.md +29 -0
- package/skills/vueuse-functions/references/useSwipe.md +75 -0
- package/skills/vueuse-functions/references/useTemplateRefsList.md +37 -0
- package/skills/vueuse-functions/references/useTextDirection.md +75 -0
- package/skills/vueuse-functions/references/useTextSelection.md +43 -0
- package/skills/vueuse-functions/references/useTextareaAutosize.md +94 -0
- package/skills/vueuse-functions/references/useThrottleFn.md +57 -0
- package/skills/vueuse-functions/references/useThrottledRefHistory.md +47 -0
- package/skills/vueuse-functions/references/useTimeAgo.md +154 -0
- package/skills/vueuse-functions/references/useTimeAgoIntl.md +117 -0
- package/skills/vueuse-functions/references/useTimeout.md +113 -0
- package/skills/vueuse-functions/references/useTimeoutFn.md +51 -0
- package/skills/vueuse-functions/references/useTimeoutPoll.md +47 -0
- package/skills/vueuse-functions/references/useTimestamp.md +93 -0
- package/skills/vueuse-functions/references/useTitle.md +115 -0
- package/skills/vueuse-functions/references/useToNumber.md +54 -0
- package/skills/vueuse-functions/references/useToString.md +34 -0
- package/skills/vueuse-functions/references/useToggle.md +103 -0
- package/skills/vueuse-functions/references/useTransition.md +265 -0
- package/skills/vueuse-functions/references/useTrunc.md +33 -0
- package/skills/vueuse-functions/references/useUrlSearchParams.md +121 -0
- package/skills/vueuse-functions/references/useUserMedia.md +96 -0
- package/skills/vueuse-functions/references/useVModel.md +182 -0
- package/skills/vueuse-functions/references/useVModels.md +67 -0
- package/skills/vueuse-functions/references/useVibrate.md +86 -0
- package/skills/vueuse-functions/references/useVirtualList.md +182 -0
- package/skills/vueuse-functions/references/useWakeLock.md +51 -0
- package/skills/vueuse-functions/references/useWebNotification.md +175 -0
- package/skills/vueuse-functions/references/useWebSocket.md +299 -0
- package/skills/vueuse-functions/references/useWebWorker.md +60 -0
- package/skills/vueuse-functions/references/useWebWorkerFn.md +102 -0
- package/skills/vueuse-functions/references/useWindowFocus.md +46 -0
- package/skills/vueuse-functions/references/useWindowScroll.md +46 -0
- package/skills/vueuse-functions/references/useWindowSize.md +78 -0
- package/skills/vueuse-functions/references/useZoomFactor.md +53 -0
- package/skills/vueuse-functions/references/useZoomLevel.md +53 -0
- package/skills/vueuse-functions/references/watchArray.md +53 -0
- package/skills/vueuse-functions/references/watchAtMost.md +63 -0
- package/skills/vueuse-functions/references/watchDebounced.md +101 -0
- package/skills/vueuse-functions/references/watchDeep.md +54 -0
- package/skills/vueuse-functions/references/watchExtractedObservable.md +192 -0
- package/skills/vueuse-functions/references/watchIgnorable.md +120 -0
- package/skills/vueuse-functions/references/watchImmediate.md +44 -0
- package/skills/vueuse-functions/references/watchOnce.md +41 -0
- package/skills/vueuse-functions/references/watchPausable.md +86 -0
- package/skills/vueuse-functions/references/watchThrottled.md +108 -0
- package/skills/vueuse-functions/references/watchTriggerable.md +98 -0
- package/skills/vueuse-functions/references/watchWithFilter.md +54 -0
- package/skills/vueuse-functions/references/whenever.md +108 -0
- package/skills/web-design-guidelines/SKILL.md +39 -0
- package/skills/web-design-guidelines/SYNC.md +5 -0
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
---
|
|
2
|
+
category: Component
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# useVirtualList
|
|
6
|
+
|
|
7
|
+
::: warning
|
|
8
|
+
Consider using [`@tanstack/vue-virtual`](https://tanstack.com/virtual/v3/docs/framework/vue/vue-virtual) instead, if you are looking for more features.
|
|
9
|
+
:::
|
|
10
|
+
|
|
11
|
+
Create virtual lists with ease. Virtual lists (sometimes called [_virtual scrollers_](https://vue-virtual-scroller-demo.netlify.app/)) allow you to render a large number of items performantly. They only render the minimum number of DOM nodes necessary to show the items within the `container` element by using the `wrapper` element to emulate the container element's full height.
|
|
12
|
+
|
|
13
|
+
## Usage
|
|
14
|
+
|
|
15
|
+
### Simple list
|
|
16
|
+
|
|
17
|
+
```ts
|
|
18
|
+
import { useVirtualList } from '@vueuse/core'
|
|
19
|
+
|
|
20
|
+
const { list, containerProps, wrapperProps } = useVirtualList(
|
|
21
|
+
Array.from(Array.from({ length: 99999 }).keys()),
|
|
22
|
+
{
|
|
23
|
+
// Keep `itemHeight` in sync with the item's row.
|
|
24
|
+
itemHeight: 22,
|
|
25
|
+
},
|
|
26
|
+
)
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### Config
|
|
30
|
+
|
|
31
|
+
| State | Type | Description |
|
|
32
|
+
| ---------- | -------- | ----------------------------------------------------------------------------------------------- |
|
|
33
|
+
| itemHeight | `number` | ensure that the total height of the `wrapper` element is calculated correctly.\* |
|
|
34
|
+
| itemWidth | `number` | ensure that the total width of the `wrapper` element is calculated correctly.\* |
|
|
35
|
+
| overscan | `number` | number of pre-rendered DOM nodes. Prevents whitespace between items if you scroll very quickly. |
|
|
36
|
+
|
|
37
|
+
\* The `itemHeight` or `itemWidth` must be kept in sync with the height of each row rendered. If you are seeing extra whitespace or jitter when scrolling to the bottom of the list, ensure the `itemHeight` or `itemWidth` is the same height as the row.
|
|
38
|
+
|
|
39
|
+
### Reactive list
|
|
40
|
+
|
|
41
|
+
```ts
|
|
42
|
+
import { useToggle, useVirtualList } from '@vueuse/core'
|
|
43
|
+
import { computed } from 'vue'
|
|
44
|
+
|
|
45
|
+
const [isEven, toggle] = useToggle()
|
|
46
|
+
const allItems = Array.from(Array.from({ length: 99999 }).keys())
|
|
47
|
+
const filteredList = computed(() => allItems.filter(i => isEven.value ? i % 2 === 0 : i % 2 === 1))
|
|
48
|
+
|
|
49
|
+
const { list, containerProps, wrapperProps } = useVirtualList(
|
|
50
|
+
filteredList,
|
|
51
|
+
{
|
|
52
|
+
itemHeight: 22,
|
|
53
|
+
},
|
|
54
|
+
)
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
```vue
|
|
58
|
+
<template>
|
|
59
|
+
<p>Showing {{ isEven ? 'even' : 'odd' }} items</p>
|
|
60
|
+
<button @click="toggle">
|
|
61
|
+
Toggle Even/Odd
|
|
62
|
+
</button>
|
|
63
|
+
<div v-bind="containerProps" style="height: 300px">
|
|
64
|
+
<div v-bind="wrapperProps">
|
|
65
|
+
<div v-for="item in list" :key="item.index" style="height: 22px">
|
|
66
|
+
Row: {{ item.data }}
|
|
67
|
+
</div>
|
|
68
|
+
</div>
|
|
69
|
+
</div>
|
|
70
|
+
</template>
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### Horizontal list
|
|
74
|
+
|
|
75
|
+
```ts
|
|
76
|
+
import { useVirtualList } from '@vueuse/core'
|
|
77
|
+
|
|
78
|
+
const allItems = Array.from(Array.from({ length: 99999 }).keys())
|
|
79
|
+
|
|
80
|
+
const { list, containerProps, wrapperProps } = useVirtualList(
|
|
81
|
+
allItems,
|
|
82
|
+
{
|
|
83
|
+
itemWidth: 200,
|
|
84
|
+
},
|
|
85
|
+
)
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
```vue
|
|
89
|
+
<template>
|
|
90
|
+
<div v-bind="containerProps" style="height: 300px">
|
|
91
|
+
<div v-bind="wrapperProps">
|
|
92
|
+
<div v-for="item in list" :key="item.index" style="width: 200px">
|
|
93
|
+
Row: {{ item.data }}
|
|
94
|
+
</div>
|
|
95
|
+
</div>
|
|
96
|
+
</div>
|
|
97
|
+
</template>
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
## Component Usage
|
|
101
|
+
|
|
102
|
+
```vue
|
|
103
|
+
<template>
|
|
104
|
+
<UseVirtualList :list="list" :options="options" height="300px">
|
|
105
|
+
<template #default="props">
|
|
106
|
+
<!-- you can get current item of list here -->
|
|
107
|
+
<div style="height: 22px">
|
|
108
|
+
Row {{ props.index }} {{ props.data }}
|
|
109
|
+
</div>
|
|
110
|
+
</template>
|
|
111
|
+
</UseVirtualList>
|
|
112
|
+
</template>
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
To scroll to a specific element, the component exposes `scrollTo(index: number) => void`.
|
|
116
|
+
|
|
117
|
+
## Type Declarations
|
|
118
|
+
|
|
119
|
+
```ts
|
|
120
|
+
type UseVirtualListItemSize = number | ((index: number) => number)
|
|
121
|
+
export interface UseHorizontalVirtualListOptions extends UseVirtualListOptionsBase {
|
|
122
|
+
/**
|
|
123
|
+
* item width, accept a pixel value or a function that returns the width
|
|
124
|
+
*
|
|
125
|
+
* @default 0
|
|
126
|
+
*/
|
|
127
|
+
itemWidth: UseVirtualListItemSize
|
|
128
|
+
}
|
|
129
|
+
export interface UseVerticalVirtualListOptions extends UseVirtualListOptionsBase {
|
|
130
|
+
/**
|
|
131
|
+
* item height, accept a pixel value or a function that returns the height
|
|
132
|
+
*
|
|
133
|
+
* @default 0
|
|
134
|
+
*/
|
|
135
|
+
itemHeight: UseVirtualListItemSize
|
|
136
|
+
}
|
|
137
|
+
export interface UseVirtualListOptionsBase {
|
|
138
|
+
/**
|
|
139
|
+
* the extra buffer items outside of the view area
|
|
140
|
+
*
|
|
141
|
+
* @default 5
|
|
142
|
+
*/
|
|
143
|
+
overscan?: number
|
|
144
|
+
}
|
|
145
|
+
export type UseVirtualListOptions =
|
|
146
|
+
| UseHorizontalVirtualListOptions
|
|
147
|
+
| UseVerticalVirtualListOptions
|
|
148
|
+
export interface UseVirtualListItem<T> {
|
|
149
|
+
data: T
|
|
150
|
+
index: number
|
|
151
|
+
}
|
|
152
|
+
export interface UseVirtualListReturn<T> {
|
|
153
|
+
list: Ref<UseVirtualListItem<T>[]>
|
|
154
|
+
scrollTo: (index: number) => void
|
|
155
|
+
containerProps: {
|
|
156
|
+
ref: Ref<HTMLElement | null>
|
|
157
|
+
onScroll: () => void
|
|
158
|
+
style: StyleValue
|
|
159
|
+
}
|
|
160
|
+
wrapperProps: ComputedRef<{
|
|
161
|
+
style:
|
|
162
|
+
| {
|
|
163
|
+
width: string
|
|
164
|
+
height: string
|
|
165
|
+
marginTop: string
|
|
166
|
+
}
|
|
167
|
+
| {
|
|
168
|
+
width: string
|
|
169
|
+
height: string
|
|
170
|
+
marginLeft: string
|
|
171
|
+
display: string
|
|
172
|
+
}
|
|
173
|
+
}>
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Please consider using [`vue-virtual-scroller`](https://github.com/Akryum/vue-virtual-scroller) if you are looking for more features.
|
|
177
|
+
*/
|
|
178
|
+
export declare function useVirtualList<T = any>(
|
|
179
|
+
list: MaybeRef<readonly T[]>,
|
|
180
|
+
options: UseVirtualListOptions,
|
|
181
|
+
): UseVirtualListReturn<T>
|
|
182
|
+
```
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
---
|
|
2
|
+
category: Browser
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# useWakeLock
|
|
6
|
+
|
|
7
|
+
Reactive [Screen Wake Lock API](https://developer.mozilla.org/en-US/docs/Web/API/Screen_Wake_Lock_API). Provides a way to prevent devices from dimming or locking the screen when an application needs to keep running.
|
|
8
|
+
|
|
9
|
+
## Usage
|
|
10
|
+
|
|
11
|
+
```ts
|
|
12
|
+
import { useWakeLock } from '@vueuse/core'
|
|
13
|
+
|
|
14
|
+
const { isSupported, isActive, forceRequest, request, release } = useWakeLock()
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
When `request` is called, the wake lock will be requested if the document is visible. Otherwise, the request will be queued until the document becomes visible. If the request is successful, `isActive` will be **true**. Whenever the document is hidden, the `isActive` will be **false**.
|
|
18
|
+
|
|
19
|
+
When `release` is called, the wake lock will be released. If there is a queued request, it will be canceled.
|
|
20
|
+
|
|
21
|
+
To request a wake lock immediately, even if the document is hidden, use `forceRequest`. Note that this may throw an error if the document is hidden.
|
|
22
|
+
|
|
23
|
+
## Type Declarations
|
|
24
|
+
|
|
25
|
+
```ts
|
|
26
|
+
type WakeLockType = "screen"
|
|
27
|
+
export interface WakeLockSentinel extends EventTarget {
|
|
28
|
+
type: WakeLockType
|
|
29
|
+
released: boolean
|
|
30
|
+
release: () => Promise<void>
|
|
31
|
+
}
|
|
32
|
+
export type UseWakeLockOptions = ConfigurableNavigator & ConfigurableDocument
|
|
33
|
+
export interface UseWakeLockReturn extends Supportable {
|
|
34
|
+
sentinel: ShallowRef<WakeLockSentinel | null>
|
|
35
|
+
isActive: ComputedRef<boolean>
|
|
36
|
+
request: (type: WakeLockType) => Promise<void>
|
|
37
|
+
forceRequest: (type: WakeLockType) => Promise<void>
|
|
38
|
+
release: () => Promise<void>
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Reactive Screen Wake Lock API.
|
|
42
|
+
*
|
|
43
|
+
* @see https://vueuse.org/useWakeLock
|
|
44
|
+
* @param options
|
|
45
|
+
*
|
|
46
|
+
* @__NO_SIDE_EFFECTS__
|
|
47
|
+
*/
|
|
48
|
+
export declare function useWakeLock(
|
|
49
|
+
options?: UseWakeLockOptions,
|
|
50
|
+
): UseWakeLockReturn
|
|
51
|
+
```
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
---
|
|
2
|
+
category: Browser
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# useWebNotification
|
|
6
|
+
|
|
7
|
+
Reactive [Notification](https://developer.mozilla.org/en-US/docs/Web/API/notification)
|
|
8
|
+
|
|
9
|
+
The Web Notification interface of the Notifications API is used to configure and display desktop notifications to the user.
|
|
10
|
+
|
|
11
|
+
## Usage
|
|
12
|
+
|
|
13
|
+
::: tip
|
|
14
|
+
Before an app can send a notification, the user must grant the application the right to do so. The user's OS settings may also prevent expected notification behaviour.
|
|
15
|
+
:::
|
|
16
|
+
|
|
17
|
+
```ts
|
|
18
|
+
import { useWebNotification } from '@vueuse/core'
|
|
19
|
+
|
|
20
|
+
const {
|
|
21
|
+
isSupported,
|
|
22
|
+
notification,
|
|
23
|
+
permissionGranted,
|
|
24
|
+
show,
|
|
25
|
+
close,
|
|
26
|
+
onClick,
|
|
27
|
+
onShow,
|
|
28
|
+
onError,
|
|
29
|
+
onClose,
|
|
30
|
+
} = useWebNotification({
|
|
31
|
+
title: 'Hello, VueUse world!',
|
|
32
|
+
dir: 'auto',
|
|
33
|
+
lang: 'en',
|
|
34
|
+
renotify: true,
|
|
35
|
+
tag: 'test',
|
|
36
|
+
})
|
|
37
|
+
|
|
38
|
+
if (isSupported.value && permissionGranted.value)
|
|
39
|
+
show()
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
This composable also utilizes the createEventHook utility from '@vueuse/shared`:
|
|
43
|
+
|
|
44
|
+
```ts
|
|
45
|
+
import { useWebNotification } from '@vueuse/core'
|
|
46
|
+
|
|
47
|
+
const { onClick, onShow, onError, onClose, } = useWebNotification()
|
|
48
|
+
// ---cut---
|
|
49
|
+
onClick((evt: Event) => {
|
|
50
|
+
// Do something with the notification on:click event...
|
|
51
|
+
})
|
|
52
|
+
|
|
53
|
+
onShow((evt: Event) => {
|
|
54
|
+
// Do something with the notification on:show event...
|
|
55
|
+
})
|
|
56
|
+
|
|
57
|
+
onError((evt: Event) => {
|
|
58
|
+
// Do something with the notification on:error event...
|
|
59
|
+
})
|
|
60
|
+
|
|
61
|
+
onClose((evt: Event) => {
|
|
62
|
+
// Do something with the notification on:close event...
|
|
63
|
+
})
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## Type Declarations
|
|
67
|
+
|
|
68
|
+
```ts
|
|
69
|
+
export interface WebNotificationOptions {
|
|
70
|
+
/**
|
|
71
|
+
* The title read-only property of the Notification interface indicates
|
|
72
|
+
* the title of the notification
|
|
73
|
+
*
|
|
74
|
+
* @default ''
|
|
75
|
+
*/
|
|
76
|
+
title?: string
|
|
77
|
+
/**
|
|
78
|
+
* The body string of the notification as specified in the constructor's
|
|
79
|
+
* options parameter.
|
|
80
|
+
*
|
|
81
|
+
* @default ''
|
|
82
|
+
*/
|
|
83
|
+
body?: string
|
|
84
|
+
/**
|
|
85
|
+
* The text direction of the notification as specified in the constructor's
|
|
86
|
+
* options parameter.
|
|
87
|
+
*
|
|
88
|
+
* @default ''
|
|
89
|
+
*/
|
|
90
|
+
dir?: "auto" | "ltr" | "rtl"
|
|
91
|
+
/**
|
|
92
|
+
* The language code of the notification as specified in the constructor's
|
|
93
|
+
* options parameter.
|
|
94
|
+
*
|
|
95
|
+
* @default DOMString
|
|
96
|
+
*/
|
|
97
|
+
lang?: string
|
|
98
|
+
/**
|
|
99
|
+
* The ID of the notification(if any) as specified in the constructor's options
|
|
100
|
+
* parameter.
|
|
101
|
+
*
|
|
102
|
+
* @default ''
|
|
103
|
+
*/
|
|
104
|
+
tag?: string
|
|
105
|
+
/**
|
|
106
|
+
* The URL of the image used as an icon of the notification as specified
|
|
107
|
+
* in the constructor's options parameter.
|
|
108
|
+
*
|
|
109
|
+
* @default ''
|
|
110
|
+
*/
|
|
111
|
+
icon?: string
|
|
112
|
+
/**
|
|
113
|
+
* Specifies whether the user should be notified after a new notification
|
|
114
|
+
* replaces an old one.
|
|
115
|
+
*
|
|
116
|
+
* @default false
|
|
117
|
+
*/
|
|
118
|
+
renotify?: boolean
|
|
119
|
+
/**
|
|
120
|
+
* A boolean value indicating that a notification should remain active until the
|
|
121
|
+
* user clicks or dismisses it, rather than closing automatically.
|
|
122
|
+
*
|
|
123
|
+
* @default false
|
|
124
|
+
*/
|
|
125
|
+
requireInteraction?: boolean
|
|
126
|
+
/**
|
|
127
|
+
* The silent read-only property of the Notification interface specifies
|
|
128
|
+
* whether the notification should be silent, i.e., no sounds or vibrations
|
|
129
|
+
* should be issued, regardless of the device settings.
|
|
130
|
+
*
|
|
131
|
+
* @default false
|
|
132
|
+
*/
|
|
133
|
+
silent?: boolean
|
|
134
|
+
/**
|
|
135
|
+
* Specifies a vibration pattern for devices with vibration hardware to emit.
|
|
136
|
+
* A vibration pattern, as specified in the Vibration API spec
|
|
137
|
+
*
|
|
138
|
+
* @see https://w3c.github.io/vibration/
|
|
139
|
+
*/
|
|
140
|
+
vibrate?: number[]
|
|
141
|
+
}
|
|
142
|
+
export interface UseWebNotificationOptions
|
|
143
|
+
extends ConfigurableWindow, WebNotificationOptions {
|
|
144
|
+
/**
|
|
145
|
+
* Request for permissions onMounted if it's not granted.
|
|
146
|
+
*
|
|
147
|
+
* Can be disabled and calling `ensurePermissions` to grant afterwords.
|
|
148
|
+
*
|
|
149
|
+
* @default true
|
|
150
|
+
*/
|
|
151
|
+
requestPermissions?: boolean
|
|
152
|
+
}
|
|
153
|
+
export interface UseWebNotificationReturn extends Supportable {
|
|
154
|
+
notification: ShallowRef<Notification | null>
|
|
155
|
+
ensurePermissions: () => Promise<boolean | undefined>
|
|
156
|
+
permissionGranted: ShallowRef<boolean>
|
|
157
|
+
show: (
|
|
158
|
+
overrides?: WebNotificationOptions,
|
|
159
|
+
) => Promise<Notification | undefined>
|
|
160
|
+
close: () => void
|
|
161
|
+
onClick: EventHookOn<Event>
|
|
162
|
+
onShow: EventHookOn<Event>
|
|
163
|
+
onError: EventHookOn<Event>
|
|
164
|
+
onClose: EventHookOn<Event>
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Reactive useWebNotification
|
|
168
|
+
*
|
|
169
|
+
* @see https://vueuse.org/useWebNotification
|
|
170
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/notification
|
|
171
|
+
*/
|
|
172
|
+
export declare function useWebNotification(
|
|
173
|
+
options?: UseWebNotificationOptions,
|
|
174
|
+
): UseWebNotificationReturn
|
|
175
|
+
```
|
|
@@ -0,0 +1,299 @@
|
|
|
1
|
+
---
|
|
2
|
+
category: Network
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# useWebSocket
|
|
6
|
+
|
|
7
|
+
Reactive [WebSocket](https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/WebSocket) client.
|
|
8
|
+
|
|
9
|
+
## Usage
|
|
10
|
+
|
|
11
|
+
```ts
|
|
12
|
+
import { useWebSocket } from '@vueuse/core'
|
|
13
|
+
|
|
14
|
+
const { status, data, send, open, close, ws } = useWebSocket('ws://websocketurl')
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
### Return Values
|
|
18
|
+
|
|
19
|
+
| Property | Type | Description |
|
|
20
|
+
| -------- | ----------------------------------------- | ------------------------------------ |
|
|
21
|
+
| `data` | `Ref<any>` | Latest received data |
|
|
22
|
+
| `status` | `Ref<'OPEN' \| 'CONNECTING' \| 'CLOSED'>` | Connection status |
|
|
23
|
+
| `ws` | `Ref<WebSocket>` | WebSocket instance |
|
|
24
|
+
| `send` | `(data, useBuffer?) => boolean` | Send data (buffers if not connected) |
|
|
25
|
+
| `open` | `() => void` | Open/reconnect the connection |
|
|
26
|
+
| `close` | `(code?, reason?) => void` | Close the connection |
|
|
27
|
+
|
|
28
|
+
### Callbacks
|
|
29
|
+
|
|
30
|
+
```ts
|
|
31
|
+
const { data } = useWebSocket('ws://websocketurl', {
|
|
32
|
+
onConnected(ws) {
|
|
33
|
+
console.log('Connected!')
|
|
34
|
+
},
|
|
35
|
+
onDisconnected(ws, event) {
|
|
36
|
+
console.log('Disconnected!', event.code)
|
|
37
|
+
},
|
|
38
|
+
onError(ws, event) {
|
|
39
|
+
console.error('Error:', event)
|
|
40
|
+
},
|
|
41
|
+
onMessage(ws, event) {
|
|
42
|
+
console.log('Message:', event.data)
|
|
43
|
+
},
|
|
44
|
+
})
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
See the [Type Declarations](#type-declarations) for more options.
|
|
48
|
+
|
|
49
|
+
### immediate
|
|
50
|
+
|
|
51
|
+
Enable by default.
|
|
52
|
+
|
|
53
|
+
Establish the connection immediately when the composable is called.
|
|
54
|
+
|
|
55
|
+
### autoConnect
|
|
56
|
+
|
|
57
|
+
Enable by default.
|
|
58
|
+
|
|
59
|
+
If a URL is provided as a ref, when the URL changes, it will automatically reconnect to the new URL.
|
|
60
|
+
|
|
61
|
+
### autoClose
|
|
62
|
+
|
|
63
|
+
Enable by default.
|
|
64
|
+
|
|
65
|
+
This will call `close()` automatically when the `beforeunload` event is triggered or the associated effect scope is stopped.
|
|
66
|
+
|
|
67
|
+
### autoReconnect
|
|
68
|
+
|
|
69
|
+
Reconnect on errors automatically (disabled by default).
|
|
70
|
+
|
|
71
|
+
```ts
|
|
72
|
+
import { useWebSocket } from '@vueuse/core'
|
|
73
|
+
// ---cut---
|
|
74
|
+
const { status, data, close } = useWebSocket('ws://websocketurl', {
|
|
75
|
+
autoReconnect: true,
|
|
76
|
+
})
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
Or with more controls over its behavior:
|
|
80
|
+
|
|
81
|
+
```ts
|
|
82
|
+
import { useWebSocket } from '@vueuse/core'
|
|
83
|
+
// ---cut---
|
|
84
|
+
const { status, data, close } = useWebSocket('ws://websocketurl', {
|
|
85
|
+
autoReconnect: {
|
|
86
|
+
retries: 3,
|
|
87
|
+
delay: 1000,
|
|
88
|
+
onFailed() {
|
|
89
|
+
alert('Failed to connect WebSocket after 3 retries')
|
|
90
|
+
},
|
|
91
|
+
},
|
|
92
|
+
})
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
You can also pass a function to `delay` to calculate the delay based on the number of retries. This is useful for implementing exponential backoff:
|
|
96
|
+
|
|
97
|
+
```ts
|
|
98
|
+
import { useWebSocket } from '@vueuse/core'
|
|
99
|
+
// ---cut---
|
|
100
|
+
const { status, data, close } = useWebSocket('ws://websocketurl', {
|
|
101
|
+
autoReconnect: {
|
|
102
|
+
retries: 5,
|
|
103
|
+
// Exponential backoff: 1s, 2s, 4s, 8s, 16s
|
|
104
|
+
delay: retries => Math.min(1000 * 2 ** (retries - 1), 30000),
|
|
105
|
+
},
|
|
106
|
+
})
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
```ts
|
|
110
|
+
import { useWebSocket } from '@vueuse/core'
|
|
111
|
+
// ---cut---
|
|
112
|
+
const { status, data, close } = useWebSocket('ws://websocketurl', {
|
|
113
|
+
autoReconnect: {
|
|
114
|
+
retries: 5,
|
|
115
|
+
// Linear backoff: 1s, 2s, 3s, 4s, 5s
|
|
116
|
+
delay: retries => retries * 1000,
|
|
117
|
+
},
|
|
118
|
+
})
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
Explicitly calling `close()` won't trigger the auto reconnection.
|
|
122
|
+
|
|
123
|
+
### heartbeat
|
|
124
|
+
|
|
125
|
+
It's common practice to send a small message (heartbeat) for every given time passed to keep the connection active. In this function we provide a convenient helper to do it:
|
|
126
|
+
|
|
127
|
+
```ts
|
|
128
|
+
import { useWebSocket } from '@vueuse/core'
|
|
129
|
+
// ---cut---
|
|
130
|
+
const { status, data, close } = useWebSocket('ws://websocketurl', {
|
|
131
|
+
heartbeat: true,
|
|
132
|
+
})
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
Or with more controls:
|
|
136
|
+
|
|
137
|
+
```ts
|
|
138
|
+
import { useWebSocket } from '@vueuse/core'
|
|
139
|
+
// ---cut---
|
|
140
|
+
const { status, data, close } = useWebSocket('ws://websocketurl', {
|
|
141
|
+
heartbeat: {
|
|
142
|
+
message: 'ping',
|
|
143
|
+
scheduler: cb => useIntervalFn(cb, 2000),
|
|
144
|
+
pongTimeout: 1000,
|
|
145
|
+
},
|
|
146
|
+
})
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
### Sub-protocols
|
|
150
|
+
|
|
151
|
+
List of one or more subprotocols to use, in this case SOAP and WAMP.
|
|
152
|
+
|
|
153
|
+
```ts
|
|
154
|
+
import { useWebSocket } from '@vueuse/core'
|
|
155
|
+
// ---cut---
|
|
156
|
+
const { status, data, send, open, close } = useWebSocket('ws://websocketurl', {
|
|
157
|
+
protocols: ['soap'], // ['soap', 'wamp']
|
|
158
|
+
})
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
## Type Declarations
|
|
162
|
+
|
|
163
|
+
```ts
|
|
164
|
+
export type WebSocketStatus = "OPEN" | "CONNECTING" | "CLOSED"
|
|
165
|
+
export type WebSocketHeartbeatMessage = string | ArrayBuffer | Blob
|
|
166
|
+
export interface UseWebSocketOptions {
|
|
167
|
+
onConnected?: (ws: WebSocket) => void
|
|
168
|
+
onDisconnected?: (ws: WebSocket, event: CloseEvent) => void
|
|
169
|
+
onError?: (ws: WebSocket, event: Event) => void
|
|
170
|
+
onMessage?: (ws: WebSocket, event: MessageEvent) => void
|
|
171
|
+
/**
|
|
172
|
+
* Send heartbeat for every x milliseconds passed
|
|
173
|
+
*
|
|
174
|
+
* @default false
|
|
175
|
+
*/
|
|
176
|
+
heartbeat?:
|
|
177
|
+
| boolean
|
|
178
|
+
| (ConfigurableScheduler & {
|
|
179
|
+
/**
|
|
180
|
+
* Message for the heartbeat
|
|
181
|
+
*
|
|
182
|
+
* @default 'ping'
|
|
183
|
+
*/
|
|
184
|
+
message?: MaybeRefOrGetter<WebSocketHeartbeatMessage>
|
|
185
|
+
/**
|
|
186
|
+
* Response message for the heartbeat, if undefined the message will be used
|
|
187
|
+
*/
|
|
188
|
+
responseMessage?: MaybeRefOrGetter<WebSocketHeartbeatMessage>
|
|
189
|
+
/**
|
|
190
|
+
* Interval, in milliseconds
|
|
191
|
+
*
|
|
192
|
+
* @deprecated Please use `scheduler` option instead
|
|
193
|
+
* @default 1000
|
|
194
|
+
*/
|
|
195
|
+
interval?: number
|
|
196
|
+
/**
|
|
197
|
+
* Heartbeat response timeout, in milliseconds
|
|
198
|
+
*
|
|
199
|
+
* @default 1000
|
|
200
|
+
*/
|
|
201
|
+
pongTimeout?: number
|
|
202
|
+
})
|
|
203
|
+
/**
|
|
204
|
+
* Enabled auto reconnect
|
|
205
|
+
*
|
|
206
|
+
* @default false
|
|
207
|
+
*/
|
|
208
|
+
autoReconnect?:
|
|
209
|
+
| boolean
|
|
210
|
+
| {
|
|
211
|
+
/**
|
|
212
|
+
* Maximum retry times.
|
|
213
|
+
*
|
|
214
|
+
* Or you can pass a predicate function (which returns true if you want to retry).
|
|
215
|
+
*
|
|
216
|
+
* @default -1
|
|
217
|
+
*/
|
|
218
|
+
retries?: number | ((retried: number) => boolean)
|
|
219
|
+
/**
|
|
220
|
+
* Delay for reconnect, in milliseconds
|
|
221
|
+
*
|
|
222
|
+
* Or you can pass a function to calculate the delay based on the number of retries.
|
|
223
|
+
*
|
|
224
|
+
* @default 1000
|
|
225
|
+
*/
|
|
226
|
+
delay?: number | ((retries: number) => number)
|
|
227
|
+
/**
|
|
228
|
+
* On maximum retry times reached.
|
|
229
|
+
*/
|
|
230
|
+
onFailed?: Fn
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Immediately open the connection when calling this composable
|
|
234
|
+
*
|
|
235
|
+
* @default true
|
|
236
|
+
*/
|
|
237
|
+
immediate?: boolean
|
|
238
|
+
/**
|
|
239
|
+
* Automatically connect to the websocket when URL changes
|
|
240
|
+
*
|
|
241
|
+
* @default true
|
|
242
|
+
*/
|
|
243
|
+
autoConnect?: boolean
|
|
244
|
+
/**
|
|
245
|
+
* Automatically close a connection
|
|
246
|
+
*
|
|
247
|
+
* @default true
|
|
248
|
+
*/
|
|
249
|
+
autoClose?: boolean
|
|
250
|
+
/**
|
|
251
|
+
* List of one or more sub-protocol strings
|
|
252
|
+
*
|
|
253
|
+
* @default []
|
|
254
|
+
*/
|
|
255
|
+
protocols?: string[]
|
|
256
|
+
}
|
|
257
|
+
export interface UseWebSocketReturn<T> {
|
|
258
|
+
/**
|
|
259
|
+
* Reference to the latest data received via the websocket,
|
|
260
|
+
* can be watched to respond to incoming messages
|
|
261
|
+
*/
|
|
262
|
+
data: ShallowRef<T | null>
|
|
263
|
+
/**
|
|
264
|
+
* The current websocket status, can be only one of:
|
|
265
|
+
* 'OPEN', 'CONNECTING', 'CLOSED'
|
|
266
|
+
*/
|
|
267
|
+
status: ShallowRef<WebSocketStatus>
|
|
268
|
+
/**
|
|
269
|
+
* Closes the websocket connection gracefully.
|
|
270
|
+
*/
|
|
271
|
+
close: WebSocket["close"]
|
|
272
|
+
/**
|
|
273
|
+
* Reopen the websocket connection.
|
|
274
|
+
* If there the current one is active, will close it before opening a new one.
|
|
275
|
+
*/
|
|
276
|
+
open: Fn
|
|
277
|
+
/**
|
|
278
|
+
* Sends data through the websocket connection.
|
|
279
|
+
*
|
|
280
|
+
* @param data
|
|
281
|
+
* @param useBuffer when the socket is not yet open, store the data into the buffer and sent them one connected. Default to true.
|
|
282
|
+
*/
|
|
283
|
+
send: (data: string | ArrayBuffer | Blob, useBuffer?: boolean) => boolean
|
|
284
|
+
/**
|
|
285
|
+
* Reference to the WebSocket instance.
|
|
286
|
+
*/
|
|
287
|
+
ws: ShallowRef<WebSocket | undefined>
|
|
288
|
+
}
|
|
289
|
+
/**
|
|
290
|
+
* Reactive WebSocket client.
|
|
291
|
+
*
|
|
292
|
+
* @see https://vueuse.org/useWebSocket
|
|
293
|
+
* @param url
|
|
294
|
+
*/
|
|
295
|
+
export declare function useWebSocket<Data = any>(
|
|
296
|
+
url: MaybeRefOrGetter<string | URL | undefined>,
|
|
297
|
+
options?: UseWebSocketOptions,
|
|
298
|
+
): UseWebSocketReturn<Data>
|
|
299
|
+
```
|