Кнопки-переключатели удобны для создания группы кнопок, отдельные состояния выбора которых зависят от одной переменной. В этой статье мы увидим, как мы можем создавать и настраивать этот компонент в Vuetify.
Компонент v-btn-toggle
Мы можем создать группу кнопок (или кнопку-переключатель) в Vuetify с компонентом v-btn-toggle
. Группа кнопок может быть выбрана или переключена под одной v-model
, которая привязана к переменной format
:
<template> <v-app> <v-row class="ma-2" justify="center"> <v-btn-toggle v-model="format" borderless> <v-btn value="left"> <span>Left</span><v-icon right>mdi-format-align-left</v-icon> </v-btn> <v-btn value="center"> <span>Center</span><v-icon right>mdi-format-align-center</v-icon> </v-btn> <v-btn value="right"> <span>Right</span><v-icon right>mdi-format-align-right</v-icon> </v-btn> </v-btn-toggle> </v-row> </v-app> </template>
<script> export default { name: 'App', data: () => ({ format: 'center', }), }; </script>
Нажатие одной из кнопок в группе отменяет выбор текущей выбранной:
Обеспечение значения кнопки переключения с помощью обязательной опоры
Vuetify предоставляет реквизит mandatory
, используемый для того, чтобы кнопка-переключатель всегда имела значение:
<template> <v-app> <v-row class="ma-2" justify="center"> <v-btn-toggle v-model="format" borderless mandatory> <v-btn value="left"> <span>Left</span><v-icon right>mdi-format-align-left</v-icon> </v-btn> <v-btn value="center"> <span>Center</span><v-icon right>mdi-format-align-center</v-icon> </v-btn> <v-btn value="right"> <span>Right</span><v-icon right>mdi-format-align-right</v-icon> </v-btn> </v-btn-toggle> </v-row> </v-app> </template>
<script> export default { name: 'App', data: () => ({ format: null, }), }; </script>
Украсьте с помощью Vuetify
Полное руководство по созданию элегантных веб-приложений с помощью платформы Vuetify Material Design.
Скачать бесплатную копию здесь!
Множественный выбор кнопки переключения Vuetify
Свойство multiple
позволяет нам выбрать более одной кнопки в группе:
<template> <v-app> <v-row class="ma-2" justify="center"> <v-btn-toggle v-model="selectedLetters" multiple> <v-btn v-for="(ch, index) in word" :key="index">{{ch}}</v-btn> </v-btn-toggle> </v-row> </v-app> </template>
<script> export default { name: 'App', data: () => ({ word: 'Beauty'.split(''), selectedLetters: [] }), }; </script>
Закругленные кнопки переключения Vuetify
Мы можем сделать кнопки-переключатели в Vuetify закругленными с помощью реквизита rounded
:
<template> <v-app> <v-row class="ma-2" justify="center"> <v-btn-toggle v-model="letter" rounded> <v-btn v-for="(ch, index) in word" :key="index">{{ ch }}</v-btn> </v-btn-toggle> </v-row> </v-app> </template>
<script> export default { name: 'App', data: () => ({ word: 'Coding'.split(''), letter: '', }), }; </script>
Кнопки переключения без полей Vuetify
Установка свойства borderless
на true
на v-btn-toggle
удалит границы с каждой кнопки в группе.
<template> <v-app> <v-row class="ma-2" justify="center"> <v-btn-toggle v-model="letter" rounded borderless> <v-btn v-for="(ch, index) in word" :key="index">{{ ch }}</v-btn> </v-btn-toggle> </v-row> </v-app> </template>
<script> export default { name: 'App', data: () => ({ word: 'Coding'.split(''), letter: '', }), }; </script>
Настройка цветов кнопки переключения в Vuetify
Мы можем изменить цвет выбранной кнопки в группе кнопок с помощью реквизита color
:
<template> <v-app> <v-row class="ma-2" justify="center"> <v-btn-toggle v-model="selectedLetters" rounded multiple color="blue"> <v-btn v-for="(ch, index) in word" :key="index">{{ ch }}</v-btn> </v-btn-toggle> </v-row> </v-app> </template>
<script> export default { name: 'App', data: () => ({ word: 'Beauty'.split(''), selectedLetters: [], }), }; </script>
Краткое содержание
Кнопки-переключатели полезны, когда у нас есть группа логически связанных кнопок, состояния выбора которых должны контролироваться одной переменной. Vuetify предоставляет компонент v-btn-toggle
для их создания и различные реквизиты для настройки.
Подпишитесь на нашу еженедельную рассылку, чтобы быть в курсе новых полезных материалов.
Первоначально опубликовано на сайте codingbeautydev.com.