Рубрики
Без рубрики

Vue/nuxt + ui чакры: Вкладки

Я работаю с чакрам UI Vue в течение нескольких месяцев. Я использую чакра в побочном проекте, чтобы L … с меткой Vue, JavaScript, Nuxt, Chakra.

Я работаю с чакрам UI Vue в течение нескольких месяцев. Я использую чакра в побочном проекте, чтобы узнать больше о Jamstack и Vue/Nuxt. Я привлечен к пользовательскому интерфейсу Chakra из -за его практического набора компонентов и его внимания на доступности. Это первая статья в серии, которую я буду публиковать о Vue и Chakra. Надеюсь вам нравится!

Одним из компонентов, с которыми я много работал, является компонент вкладок. Вкладки хорошо работают при представлении контента. Я также использовал его для выбора опций высокого уровня драйвера для конкретных процессов и потоков пользователей. Давай прыгнем прямо в …

Этот пост предполагает, что у вас уже есть настройка Nuxt Project с установленной чакра, а также включенные авто-импорты.

Стандартный способ настройки вкладок с помощью чакры использует родительский c-tabs Элемент, содержащий один c-tab-list и одинокий c-tab-panels элемент.


    
        
        One
        Two
        Three
        
        
        
            

one!

two!

three!

Важно убедиться, что у вас такое же количество c-tab-panel Элементы, как вы делаете c-tab элементы. Не делать этого может означать, что ваш контент недоступен для пользователя. Порядок также имеет решающее значение для этой работы, как первый c-tab Кнопка будет соответствовать первым c-tab-panel элемент. Это быстро встает и работает. Примечание, каждый c-tab становится кнопкой, когда он рендесирует.

В дополнение к разделению контента, я также хочу знать, какую вкладку выбрал пользователь. Для этого я рекомендую перейти на другой шаблон. Этот шаблон включает в себя перемещение параметров вкладок в массив, а затем использование Vuey V-for Директива Смотри, чтобы генерировать c-tab-list элементы.


    
        
        {{
            tab
          }}
        
...
    

Теперь мы представили новый объект данных здесь .. вкладки Анкет Давайте настроим его, чтобы приведенный выше код сработал:

data() {
    return {
      tabs: ['One', 'Two', 'Three'],
      tabIndex: 0,
    }
  },

Затем мы называем метод на @change событие, чтобы изменить значение табдекса:

 
     ...

...
methods: {
    setTabIndex(index) {
      this.tabIndex = index
    },
}

Как сейчас, TabIndex изменится, поскольку пользователь выбирает другую вкладку, но мы еще не знаем, какой вариант выбрал пользователь, только его значение индекса. В мае значение индекса, вернемся к массиву, мы используем вычисленное свойство, чтобы дать нам выбранный текст вкладки:

computed: {
    selectedTab() {
      return this.tabs[this.tabIndex]
    },
}

Теперь у нас есть SelectedTab и TabIndex Значения в родительском компоненте, которые мы можем использовать для управления другим поведением.

Для одной последней функции мы можем затем управлять индексом по умолчанию, свойство в элементе C-Tabs, используя поле Tabindex:


Делая это, вы можете установить начальный выбор вкладок.

Ваш стиль C-Tab должен быть простым. Добавление изображений или значков на вашу вкладку может переполнять вещи. При использовании таких компонентов библиотеки, держите это простым.

Другое ограничение может представить себя, если вы хотите включить/отключить вкладку. В этом случае следующий шаблон работает лучше.

Альтернатива

Чтобы включить отдельную вкладку отключить, можно применить следующий подход.

 
    {{ tabs[0] }}
    {{ tabs[1] }}
    {{ tabs[2] }}
 

data() {
    return {
      tabs: ['One', 'Two', 'Three'],
      tabIndex: 0,
      tabTwoDisabled: false,
    }
  },

Это поддерживает массив параметров, но дает программисту возможность включить/отключить одну вкладку.

Вкладка «Чакра» – это радость, с которой можно работать, если вы держите это простым. Если вы также хотите узнать текущую активную вкладку, то приведенный выше шаблон работает хорошо.

Ссылки

Оригинал: “https://dev.to/james_foran/vue-nuxt-chakraui-tabs-3ll5”