Skip to content

Select

BSelect es un <select> nativo compatible con v-model. Renderiza un único elemento select.b-select con un chevron embebido. Se usa típicamente dentro de BField.


Importación

js
import { BSelect } from '@bedrock/core/vue';
scss
@use '@bedrock/core/select';

Props

PropTipoDefaultDescripción
modelValueString|Number''Valor seleccionado. Vinculado con v-model.
optionsArraynullOpciones: primitivos (['a', 'b']) u objetos { value, label, disabled? }. Si es null, las opciones van en el slot default.
disabledBooleanfalseDeshabilita el select nativamente.

Cualquier atributo adicional (id, name, autocomplete…) se reenvía directamente al elemento <select>.


Slots

SlotDescripción
defaultElementos <option> nativos, alternativa a la prop options.

Emits

EventoPayloadDescripción
update:modelValueStringEmitido en cada evento change. Permite usar v-model.

Ejemplos de uso

Con prop options

html
<BSelect v-model="pais" :options="['España', 'Francia', 'Portugal']" />

Con objetos value/label

html
<BSelect
  v-model="orden"
  :options="[
    { value: 'date-desc', label: 'Más recientes' },
    { value: 'date-asc',  label: 'Más antiguos' },
  ]"
/>

Con slot

html
<BSelect v-model="categoria">
  <option value="">Todas</option>
  <option value="css">CSS</option>
  <option value="js">JavaScript</option>
</BSelect>

Dentro de BField

html
<BField>
  <template #label>Categoría</template>
  <BSelect v-model="categoria" :options="categorias" />
  <template #hint>Filtra los resultados por categoría.</template>
</BField>

Dentro de BField, el select hereda automáticamente id, aria-describedby, aria-invalid, required y disabled del campo.

Publicado bajo licencia MIT.