0.6.1 • Published 10 months ago

vue3-select-component v0.6.1

Weekly downloads
-
License
MIT
Repository
github
Last release
10 months ago

Core features:

  • ⚙️ Data manipulation with v-model
  • 🔑 Typesafe relationship between options and v-model
  • 🎨 Great styling out-of-the-box, customization with CSS variables & Vue :deep
  • ✅ Single & multi-select support
  • 🖌️ Infinite customization with <slot>s
  • 🪄 <Teleport /> menu where you want
  • 📦 Extremely light, 0 dependencies (4.4kb gzip)

Installation

Install the package with npm:

npm i vue3-select-component

Use it in your Vue 3 app:

<script setup lang="ts">
import { ref } from "vue";
import VueSelect from "vue3-select-component";

const option = ref("");
</script>

<template>
  <div class="my-app">
    <VueSelect
      v-model="option"
      :options="[
        { label: 'A Wizard of Earthsea', value: 'wizard_earthsea' },
        { label: 'Harry Potter and the Philosopher\'s Stone', value: 'harry_potter', disabled: true },
        { label: 'The Lord of the Rings', value: 'the_lord_of_the_rings' },
      ]"
    />
  </div>
</template>

Advanced TypeScript usage

Vue 3 Select Component creates a type-safe relationship between the option.value and the v-model prop.

It also leverages the power of generics to provide types for additional properties on the options.

<script setup lang="ts">
import { ref } from "vue";
import VueSelect, { type Option } from "vue3-select-component";

type UserOption = Option<number> & { username: string };

const selectedUser = ref<number>();

const userOptions: UserOption[] = [
  { label: "Alice", value: 1, username: "alice15" },
  { label: "Bob", value: 2, username: "bob01" },
  { label: "Charlie", value: 3, username: "charlie20" },
];
</script>

<template>
  <VueSelect
    v-model="selectedUser"
    :options="userOptions"
    :get-option-label="(option) => `${option.label} (${option.username})`"
    placeholder="Pick a user"
  />
</template>

There's an entire documentation page dedicated to usage with TypeScript.

Releases

For changelog, visit releases.

License

MIT Licensed. Copyright (c) Thomas Cazade 2024 - present.

0.6.1

10 months ago

0.6.0

10 months ago

0.3.0

1 year ago

0.5.0

1 year ago

0.4.0

1 year ago

0.5.2

12 months ago

0.5.1

1 year ago

0.2.4

1 year ago

0.2.3

1 year ago

0.2.2

1 year ago

0.2.1

1 year ago

0.2.0

1 year ago

0.1.4-test.4

1 year ago

0.1.3

1 year ago

0.1.2

1 year ago

0.1.1

1 year ago

0.1.0

1 year ago

0.0.1-beta.3

1 year ago

0.0.1-beta.2

1 year ago

0.0.1-beta.1

1 year ago