Семь супер практичных плагинов и библиотек Vue 3

Vue 3 — это мощная среда JavaScript, которая позволяет нам создавать невероятные пользовательские интерфейсы и приложения. С плагинами и библиотеками, упомянутыми в этой статье, мы можем упростить рабочий процесс и добиться лучших результатов за меньшее время.

Хотите создавать потрясающие приложения Vue.js в 2023 году? Если ваш ответ ДА, обязательно попробуйте 7 плагинов и библиотек Vue 3, описанных в этой статье. Эти невероятные плагины и библиотеки могут добавлять в приложения потрясающие функции и возможности без написания большого количества кода.

Эти плагины и библиотеки включают в себя анимацию, аутентификацию, оптимизацию производительности и т. д., поэтому, если вы хотите создавать потрясающие веб-приложения с помощью Vue 3, не пропустите!

1. Верифицируйте

Адрес плагина: https://vuetifyjs.com/en/

Vuetify — это мощная и гибкая библиотека пользовательского интерфейса Vue.js, которая помогает создавать красивые и отзывчивые пользовательские интерфейсы для веб-приложений. Vuetify предоставляет набор готовых компонентов и стилей пользовательского интерфейса, которые экономят время и силы при создании приложений Vue.js.

С помощью Vuetify вы можете легко создавать адаптивные макеты, типографику, значки, кнопки, формы, таблицы и многие другие элементы пользовательского интерфейса без написания всего CSS и HTML с нуля. Библиотека также включает расширенные функции, такие как директивы, настройка тем, интернационализация и специальные возможности, помогающие создавать более интерактивные, инклюзивные и удобные для пользователя веб-приложения.

Установить

# create new Vue.js Project with Vuetify
yarn create vuetify

# add to an existing Vue.js project
yarn add vuetify@^3.1.5

Применение

import { createApp } from 'vue'
import App from './App.vue'

// Vuetify
import 'vuetify/styles'
import { createVuetify } from 'vuetify'

const vuetify = createVuetify({
  components,
  directives,
})

createApp(App).use(vuetify).mount('#app')

Настроив Vuetify в нашем проекте, давайте добавим в наше приложение несколько основных компонентов Vuetify.

Сначала добавьте следующий код в файл main.js или main.ts.

import * as components from 'vuetify/components'

Теперь вы можете использовать компоненты Vuetify в своих собственных компонентах.

//button
<v-btn>
  Button
</v-btn>

//an autocomplete extends a select input with autocomplete features
<v-autocomplete
  label="Autocomplete"
  :items="['California', 'Colorado', 'Florida', 'Georgia', 'Texas', 'Wyoming']"
></v-autocomplete>

Вы также можете прикреплять директивы к компонентам с помощью Vuetify. Давайте также добавим следующий блок кода в файл main.js или main.ts:

import * as directives from 'vuetify/directives'

Теперь давайте попробуем несколько команд:

Команда v-intersect использует Intersection Observer API. Он предоставляет простой в использовании интерфейс для определения того, когда элементы видны в окне просмотра пользователя.

//v-intersect 
<v-card
     v-intersect="onIntersect"
     class="mx-auto"
     max-width="336"
  >
    <v-card-title>Card title</v-card-title>
    <v-card-text>
      This is the card's subtext
    </v-card-text>
  </v-card>
...

<script setup>
import {ref} from 'vue'
const isIntersected = ref(false)

const onIntersect = (isIntersecting, entries, observer) => {
      isIntersected.value = isIntersecting
    },
</script>

Директива v-click-out вызывает функцию, когда щелкают что-то за пределами целевого элемента. Используется внутри таких компонентов, как v-menu (компонент меню Vuetify) и v-dialog (компонент диалога Vuetify).

<template>
  <v-app>
    <v-card
      v-click-outside="onClickOutside"
      :color="active ? 'primary' : undefined"
      :dark="active"
      class="mx-auto"
      height="256"
      rounded="xl"
      width="256"
      @click="active = true"
    >
      <div 
     class="text-h6 text-md-h4 fill-height d-flex align-center justify-center">
        {
   
   { active ? 'Click Outside' : 'Click Me' }}
      </div>
    </v-card>
  </v-app>
</template>

<script setup>
import {ref} from 'vue'

const active = ref(false)

const onClickOutside = () => {
      active.value = false
    },
  },
</script>

2. Использование Vue

Адрес плагина: https://vueuse.org/

VueUse предоставляет набор из более чем 200 основных служебных функций для взаимодействия с различными API, такими как браузер, состояние, сеть, анимация, время и т. д., которые можно легко импортировать и использовать в компонентах Vue.js. Таким образом, вы можете добавлять такие функции, как доступ к локальному хранилищу, использование полноэкранного режима, нажатие внешних элементов и т. д. без написания слишком большого количества кода. Просто объедините импорт, и вы готовы к работе.

Установить

npm i @vueuse/core

Применение

// reactive localStorage 
<script setup lang="ts">
    import { useStorage } from '@vueuse/core'
    const state = useStorage('my-store', { hello: 'hi', greeting: 'Hello' })
</script>

Приведенный выше код обеспечивает гибкий способ хранения данных в браузере localStorage или sessionStorage. Таким образом, вы можете видеть обновленные данные в локальном хранилище и хранилище сеансов в режиме реального времени.

//create a draggable element
<script setup lang="ts">
    import { ref } from 'vue'
    import { useDraggable } from '@vueuse/core'

    const el = ref<HTMLElement | null>(null)

    // `style` will be a helper computed for `left: ?px; top: ?px;`
        const { x, y, style } = useDraggable(el, {
      initialValue: { x: 40, y: 40 },
    })
</script>

<template>
  <div ref="el" :style="style" style="position: fixed">
    Drag me! I am at {
   
   {x}}, {
   
   {y}}
  </div>
</template>

Приведенный выше код делает элемент el перетаскиваемым, а также предоставляет информацию в реальном времени о положении элемента на экране x и y при его перемещении.

//Detects that a target element's visibility.
<div ref="target">
  <h1>Hello world</h1>
</div>

<script>
import { ref } from 'vue'
import { useIntersectionObserver } from '@vueuse/core'

export default {
  setup() {
    const target = ref(null)
    const targetIsVisible = ref(false)

    const { stop } = useIntersectionObserver(
      target,
      ([{ isIntersecting }], observerElement) => {
        targetIsVisible.value = isIntersecting
      },
    )

    return {
      target,
      targetIsVisible,
    }
  },
}
</script>

В приведенном выше коде событие запускается, когда связанный элемент становится видимым на экране. Это очень удобный прием для создания триггера анимации.

В VueUse есть много вариантов использования композиции, и если вам интересно, вы также можете углубиться в это.

3. vue-тост-уведомление

Адрес плагина: https://github.com/ankurk91/vue-toast-notification

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

Плагин vue-toast-notification упрощает процесс отображения уведомлений в приложениях Vue.js. Он предоставляет простую в использовании и настраиваемую систему уведомлений, которую можно быстро интегрировать в проекты.

Установить

npm install vue-toast-notification@^3.0

Применение

import {createApp} from 'vue';
import ToastPlugin from 'vue-toast-notification';
// Import one of the available themes
//import 'vue-toast-notification/dist/theme-default.css';
import 'vue-toast-notification/dist/theme-sugar.css';

const app = createApp({});
app.use(ToastPlugin);
app.mount('#app');

let instance = app.$toast.open('You did it!');

// Force dismiss specific toast
instance.dismiss();

// Dismiss all opened toast immediately
app.$toast.clear();

app.$toast.open('Howdy!');

// Can accept an Object of options
app.$toast.open({
    message: 'Something went wrong!',
    type: 'error',
    // all of other options may go here
});

4. Формы

Адрес плагина: https://formkit.com/

Формы являются важной частью веб-приложений, фиксируя ввод данных пользователем и обеспечивая взаимодействие. Формы могут быть простыми или сложными и используются для таких задач, как регистрация, сбор данных и электронная коммерция. Формы улучшают взаимодействие с пользователем и функциональность системы и могут быть настроены для проверки, обработки ошибок и стиля. Но общеизвестно, что с формами трудно иметь дело, особенно когда они становятся более сложными. FormKit предоставляет набор утилит, которые позволяют нам легко создавать формы и управлять ими в приложениях Vue.js, начиная от простой проверки ввода и заканчивая расширенными функциями, такими как условная логика и динамические поля формы.

Установить

npm install @formkit/vue

Применение

Есть много вариантов использования formkit в приложении, давайте начнем с примера. Начните с настройки Formkit в вашем приложении Vue 3.

import { createApp } from 'vue'
import { plugin, defaultConfig } from '@formkit/vue'
import App from 'App.vue'

createApp(App).use(plugin, defaultConfig).mount('#app')

После импорта FormKit в глобальное приложение Vue.js мы можем использовать его в шаблоне. Например

<FormKit type="repeater" label="My Movies" add-label="Add Movie">
  <FormKit
    name="movie"
    type="autocomplete"
    label="Search for a movie"
    placeholder="Ex: Interstellar"
    :options="searchMovies"
  />
  <FormKit type="rating" label="My rating" />
</FormKit>

Это простой пример использования Formkit. Formkit — очень мощная платформа. Если вы заинтересованы в использовании FormKit для создания мощных форм, вы не будете разочарованы, попробовав Formkit.

5. Vue-перетаскивание

Адрес плагина: https://github.com/SortableJS/vue.draggable.next.

Добавление функции перетаскивания в приложение Vue.js может улучшить взаимодействие с пользователем. Поскольку возможности перетаскивания позволяют пользователям взаимодействовать с приложениями более интуитивным образом, пользователи могут легче упорядочивать данные и управлять ими. Vue-draggable — отличный инструмент для реализации функции перетаскивания, поскольку он упрощает процесс и может быть легко использован даже разработчиками, плохо знакомыми с Vue.js. Добавив этот плагин в свои приложения Vue.js, вы сможете создать более привлекательный и динамичный пользовательский интерфейс, который заставит пользователей вернуться.

Установить

#yarn
yarn add vuedraggable@next

#npm
npm i -S vuedraggable@next

Применение

Давайте создадим простой сортируемый список с помощью Vue-dragable.

<template>
  <div>
    <draggable
      v-model="cars"
      @start="drag = true"
      @end="drag = false"
      item-key="id"
    >
      <template #item="{ element }">
        <div>{
   
   { element }}</div>
      </template>
    </draggable>
  </div>
</template>

<script setup>
import { ref } from "vue";
import draggable from "vuedraggable";

const drag = ref(false);

const cars = ref(["Mercedes", "Toyota", "Honda", "Dodge"]);
</script>

6. Вьюфайр

Адрес плагина: https://vuefire.vuejs.org/

Firebase — это платформа Backend-as-a-Service (BaaS), которая предоставляет разработчикам инструменты и услуги для создания и развертывания полнофункциональных приложений. С помощью Firebase вы можете реализовать внутренние функции многих приложений Vue.js с минимальным кодом JavaScript. Однако добавление базы данных Firebase в ваше приложение может вызвать стресс. Vuefire — очень полезная и легкая оболочка, позволяющая легко синхронизировать данные с базой данных Firebase. Это избавляет от необходимости делать это вручную и имеет изящную встроенную логику, помогающую в тяжелой работе.

Установить

#yarn
yarn add vuefire firebase

#npm
npm install vuefire firebase

Применение

Перед использованием VueFire убедитесь, что у вас есть учетная запись Firebase и настройки проекта.

  • Помните, что есть две разные базы данных: Database и Firestore.
  • Предположим, мы хотим создать todo-приложение Vue.js через Firebase. Затем вам нужно настроить базу данных firestore.

Сначала мы создаем проект в Firebase, чтобы получить учетные данные приложения.

Когда проект запущен и работает, пришло время настроить базу данных firestore.

Создайте первую коллекцию под названием todos.

После того, как вы настроили Firebase Firestore Collection, вы готовы использовать Vuefire.

import { initializeApp } from 'firebase/app'
import { getFirestore, collection } from 'firebase/firestore'
// ... other firebase imports

export const firebaseApp = initializeApp({
  // your application settings from Firebase
})

// used for the firestore refs
const db = getFirestore(firebaseApp)

// here we can export reusable database references
export const todosRef = collection(db, 'todos')

<script setup>
import { useCollection } from 'vuefire'
import { collection } from 'firebase/firestore'

const todos = useCollection(collection(db, 'todos'))
const someTodo = useDocument(doc(collection(db, 'todos'), 'someId'))
</script>

<template>
  <ul>
    <li v-for="todo in todos" :key="todo.id">
     <span>{
   
   { todo.text }}</span>
    </li>
  </ul>
</template>

7. vue3-google-вход

Адрес плагина: https://vue3-google-signin.syetalabs.io/

Аутентификация — важный аспект любого приложения, которое обрабатывает конфиденциальные данные. Будь то банковское приложение или платформа для социальных сетей, пользователи хотят быть уверены, что их информация в безопасности. За рубежом Google Sign-In — это распространенный механизм аутентификации, который позволяет пользователям входить в приложения, используя свои учетные данные Google, что не только экономит время, но и обеспечивает более удобный пользовательский интерфейс.

vue3-google-signin — это простой и настраиваемый способ реализации входа через Google в проекты Vue 3. vue3-google-signin обрабатывает весь процесс аутентификации, от отображения кнопки входа в Google до получения и управления токенами аутентификации пользователя, поэтому вам не нужно беспокоиться о деталях.

Установить

//npm
npm install -S vue3-google-signin

//yarn
yarn add vue3-google-signin

//pnpm
pnpm add vue3-google-signin

Отлично, тогда мы можем аутентифицировать пользователя в приложении, используя учетные данные пользователя учетной записи Google.

Применение

Настроить библиотеку несложно. Все, что вам нужно сделать, это добавить следующий код в точку входа вашего приложения (main.js или main.ts).

import GoogleSignInPlugin from "vue3-google-signin"

app.use(GoogleSignInPlugin, {
  clientId: 'CLIENT ID OBTAINED FROM GOOGLE API CONSOLE',
});

// other config

app.mount("#app");

Вот и все! Теперь давайте войдем в приложение через Google. Мы можем добавить кнопку входа в Google в компонент с помощью следующего кода:

<script setup lang="ts">
import {
  GoogleSignInButton,
  type CredentialResponse,
} from "vue3-google-signin";

// handle success event
const handleLoginSuccess = (response: CredentialResponse) => {
  const { credential } = response;
  console.log("Access Token", credential);
};

// handle an error event
const handleLoginError = () => {
  console.error("Login failed");
};
</script>

<template>
  <GoogleSignInButton
    @success="handleLoginSuccess"
    @error="handleLoginError"
  ></GoogleSignInButton>
</template>

Также попробуйте новую аутентификацию One Tap от Google, которая отображает небольшое диалоговое окно или всплывающее окно сбоку, если видимость диалогового окна ограничена пользователем, вошедшим в приложение.

import { useOneTap, type CredentialResponse } from "vue3-google-signin";

useOneTap({
  onSuccess: (response: CredentialResponse) => {
    console.log("Success:", response);
  },
  onError: () => console.error("Error with One Tap Login"),
  // options
});

Подведем итог

В целом, Vue 3 — это мощная среда JavaScript, которая позволяет нам создавать невероятные пользовательские интерфейсы и приложения. С плагинами и библиотеками, упомянутыми в этой статье, мы можем упростить рабочий процесс и добиться лучших результатов за меньшее время.

Je suppose que tu aimes

Origine blog.csdn.net/weixin_42232156/article/details/129929099
conseillé
Classement