window.pipedriveLeadboosterConfig = { base: 'leadbooster-chat.pipedrive.com', companyId: 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', version: 2, } ;(function () { var w = window if (w.LeadBooster) { console.warn('LeadBooster już istnieje') } else { w.LeadBooster = { q: [], on: function (n, h) { this.q.push({ t: 'o', n: n, h: h }) }, trigger: function (n) { this.q.push({ t: 't', n: n }) }, } } })() Zaprzestanie korzystania z Options API w Vue - The Codest
The Codest
  • O nas
  • Nasze Usługi
    • Software Development
      • Frontend Development
      • Backend Development
    • Zespoły IT
      • Programiści frontendowi
      • Backend Dev
      • Inżynierowie danych
      • Inżynierowie rozwiązań chmurowych
      • Inżynierowie QA
      • Inne
    • Konsultacje IT
      • Audyt i doradztwo
  • Branże
    • Fintech i bankowość
    • E-commerce
    • Adtech
    • Healthtech
    • Produkcja
    • Logistyka
    • Motoryzacja
    • IOT
  • Wartość dla
    • CEO
    • CTO
    • Delivery Managera
  • Nasz zespół
  • Case Studies
  • Nasze Know How
    • Blog
    • Meetups
    • Webinary
    • Raporty
Kariera Skontaktuj się z nami
  • O nas
  • Nasze Usługi
    • Software Development
      • Frontend Development
      • Backend Development
    • Zespoły IT
      • Programiści frontendowi
      • Backend Dev
      • Inżynierowie danych
      • Inżynierowie rozwiązań chmurowych
      • Inżynierowie QA
      • Inne
    • Konsultacje IT
      • Audyt i doradztwo
  • Wartość dla
    • CEO
    • CTO
    • Delivery Managera
  • Nasz zespół
  • Case Studies
  • Nasze Know How
    • Blog
    • Meetups
    • Webinary
    • Raporty
Kariera Skontaktuj się z nami
Strzałka w tył WSTECZ
2022-06-02
Software Development

Zaprzestanie korzystania z Options API w Vue

The Codest

Paweł Długosz

Vue.js Developer

Dlaczego nie powinieneś używać Options API w Due? Znajdź odpowiedź na to pytanie w poniższym artykule i odkryj zalety Composition API.

Vue 3 wprowadziła nowe podejście do tworzenia komponentów o nazwie Skład API. Jest to alternatywa dla Options API. Interfejs API kompozycji jest w pełni opcjonalny i nie trzeba z niego korzystać, jeśli chce się używać Vue 3. Wprowadza jednak kilka ważnych ulepszeń, które ułatwiają pracę i poprawiają czytelność aplikacji. kod.

Przewaga interfejsu API kompozycji nad interfejsem API opcji

1. Lepsza organizacja i czytelność kodu.

Interfejs API kompozycji wprowadza nową metodę o nazwie konfiguracja. Wewnątrz niego można utworzyć wszystkie niezbędne elementy komponentu, takie jak: dane, metody, obliczone właściwości, obserwatorzy. Dzięki temu można utrzymać kod w czystości, umieszczając logikę odpowiedzialną za daną funkcję w jednym miejscu. Z kolei Options API wymuszało rozrzucenie logiki po całym pliku. W efekcie kod był nieczytelny i wymagał przewijania. W Composition API metody, obserwatorzy itp. nie muszą być już grupowane według typu, można je umieszczać wedle uznania.

Opcje API i przykład kompozycji

2. Wyodrębnianie i ponowne wykorzystywanie logiki.

API Composition umożliwia pisanie kodu reaktywnego w dowolnym miejscu. Można wyciągnąć logikę reaktywną poza komponent. Ten rodzaj kodu nazywany jest Composables. Komponenty Composables mogą być importowane do wielu komponentów i pozwalają na hermetyzację pewnej logiki i wyeksponowanie niezbędnych elementów reaktywnych.

// shopping-list.js
import ( computed ) from "vue";

export function useShoppingList(listId) (
  const products = shoppingList.getAllProducts(listId);
  const productsCount = computed(() => products.value.length);
  const deleteProduct = (productId) => shoppingList.deleteProduct(productId);

  return (
    products,
    productsCount,
    deleteProduct,
  );
)

// Komponent
import useSpoppingList z "@/composables/shopping-list.js";
export default (
  setup() (
    const ( products, productsCount, deleteProduct ) = useSpoppingList();
    return ( products, productsCount, deleteProduct );
  ),
);

3. Łatwe korzystanie ze stałych i zasobów zewnętrznych w komponencie.

W Options API, aby dodać np. statyczną listę elementów zaimportowanych z innego pliku, należy dodać ją do data() (co ma negatywny wpływ na wydajność) lub dodać ją do to w created(). Oba sposoby nie są zbyt eleganckie. Interfejs API kompozycji i nowy interfejs konfiguracja z pomocą przychodzi metoda, z której można eksportować nie tylko rzeczy reaktywne, ale także stałe i zewnętrzne zależności.

import list z "./list.json";
export default (
  setup() (
    return ( list );
  ),
);
  1. Możesz nawet użyć Composition API w Vue 2.

Dzięki oficjalnemu @vue/composition-api można użyć interfejsu API kompozycji w Vue 2 również.

Jak korzystać z nowego API kompozycji?

<h3>Metoda konfiguracji</h3>

setup() jest nową metodą dodaną w Vue 3 gdzie można umieścić wszystkie niezbędne elementy, takie jak obiekty danych, metody itp. Stamtąd możesz zwrócić elementy, które chcesz uwzględnić w szablonie.

<template>
  <div>(( count ))</div>
</template>
import ( ref ) from "vue";
export default (
  setup() (
    const count = ref(10);
    return ( count );
  ),
);

reactive()

Aby utworzyć reaktywny obiekt lub tablicę, należy utworzyć go za pomocą funkcji reactive(defaultValue) method. Wartość początkową tego obiektu można przekazać za pomocą argumentu metody. Metoda zwraca wartość pełnomocnik dla tego obiektu, więc po wprowadzeniu w nim zmian, Vue wie o nich i może prawidłowo odświeżyć widok.

Skład API

import ( reactive ) from "vue";
export default (
  setup() (
    const user = reactive((
      name: "John",
      rola: "ADMIN",
    ));
    return ( user;)
  ),
);

Options API

export default (
  data() (
    return (
      user: (
        name: "John",
        role: "ADMIN",
      ),
    );
  ),
);

Reactive tylko działa dla typów obiektów (obiektów, tablic i typów kolekcji, takich jak Mapa i Zestaw). Nie może przechowywać prymitywnych typów, takich jak ciąg, liczba lub logiczna. Tak więc Vue wprowadza również ref().

ref()

Aby dodać reaktywność do elementów prymitywnych, należy owinąć je folią ref().

Skład API

import ( ref ) from "vue";
export default (
  setup() (
    const count = ref(10);
    return ( count );
  ),
);

Options API

export default (
  data() (
    return (
      count: 10,
    );
  ),
);

Modyfikowanie obiektów reaktywnych

Wartości w obiektach można zmieniać bezpośrednio z poziomu metody reaktywnej, ale aby zmienić wartości prymitywne, należy użyć metody .value pole.

import ( ref, reactive ) from "vue";
export default (
  setup() (
    const user = reactive((
      name: "John",
    ));
    user.name = "John Doe"; // Zmiana wartości

    const count = ref(10);
    count.value = 20; // Zmiana wartości

    return (
      user,
      count,
    );
  ),
);

Ty nie trzeba użyć .value w szablonie.

<div>(( count ))</div>

Obliczone właściwości

Obliczone właściwości można łatwo utworzyć, przekazując metodę jako parametr do zaimportowanej właściwości computed() metoda.

import ( reactive, computed ) from "vue";
export default (
  setup() (
    const list = reactive([
      "Pozycja 1",
      "Pozycja 2",
    ]);

    // Obliczone
    const isEmpty = computed(() => list.length == 0);

    return (
      list,
      isEmpty,
    );
  ),
);

Metody

Można również zagnieżdżać metody w konfiguracja metoda.

Skład API

import ( ref ) from "vue";
export default (
  setup() (
    const count = ref(10);

        // Metoda
    const increment = () => (
      count.value++;
    );

    return (
      count,
      increment,
    );
  ),
);

Obserwatorzy

Obserwatorzy są tworzeni w podobny sposób jak obliczony. Należy jednak pamiętać, aby przekazać pełnomocnik obiekt, tj. nazwajak w poniższym przykładzie, a nie name.value sama wartość.

import ( watch, ref ) from "vue";
export default (
  setup() (
    const name = ref("John");
        // Watcher
    watch(name, (currentValue, oldValue) => (
      console.log(`Wartość zmieniona z $(oldValue)na $(currentValue)`);
    ));
    return ( name;)
  ),
);

Podsumowanie

W tym artykule przedstawiłem tylko podstawy Composition API, abyś miał ogólne pojęcie o tym, czym się różni i jakie ma zalety w porównaniu z Options API. Composition API zapewnia również alternatywy dla pozostałych elementów komponentu, takich jak hakii wprowadza nowe metody, takie jak watchEffect. Dobrym pomysłem jest przeczytanie go w oficjalnej wersji Vue 3 dokumentacja.

baner współpracy

Powiązane artykuły

Software Development

Narzędzia Javascript w akcji

Odkryj kilka narzędzi JavaScript, aby podnieść poziom swojej gry programistycznej. Dowiedz się więcej o ESLint, Prettier i Husky!

The Codest
Reda Salmi React Developer
Software Development

Zatrudnianie programistów wewnętrznych vs. zewnętrznych

Zatrudniać wewnętrznie czy zewnętrznie? To ostateczny dylemat! Poznaj zalety outsourcing lub budowania zespołu wewnętrznego w poniższym artykule.

The Codest
Grzegorz Rozmus Java Unit Leader
Software Development

Plusy i minusy React

Dlaczego warto korzystać z React? Jakie zalety ma biblioteka JavaScript? Aby poznać odpowiedzi, zanurz się w tym artykule i odkryj prawdziwe korzyści płynące z używania React.

The Codest
Cezary Góralski Software Engineer
Software Development

Porównanie mistrzów: Angular vs Vue

Obecnie istnieje kilka powszechnie używanych i stale rozwijanych przez twórców frameworków frontendowych, z których każdy nieco różni się od drugiego. A jednak mogą mieć ze sobą coś wspólnego. Oto...

Oliwia Oremek

Subskrybuj naszą bazę wiedzy i bądź na bieżąco!

    O nas

    The Codest - Międzynarodowa firma programistyczna z centrami technologicznymi w Polsce.

    Wielka Brytania - siedziba główna

    • Office 303B, 182-184 High Street North E6 2JA
      Londyn, Anglia

    Polska - lokalne centra technologiczne

    • Fabryczna Office Park, Aleja
      Pokoju 18, 31-564 Kraków
    • Brain Embassy, Konstruktorska
      11, 02-673 Warszawa, Polska

      The Codest

    • Strona główna
    • O nas
    • Nasze Usługi
    • Case Studies
    • Nasze Know How
    • Kariera
    • Słownik

      Nasze Usługi

    • Konsultacje IT
    • Software Development
    • Backend Development
    • Frontend Development
    • Zespoły IT
    • Backend Dev
    • Inżynierowie rozwiązań chmurowych
    • Inżynierowie danych
    • Inne
    • Inżynierowie QA

      Raporty

    • Fakty i mity na temat współpracy z zewnętrznym partnerem programistycznym
    • Z USA do Europy: Dlaczego amerykańskie startupy decydują się na relokację do Europy?
    • Porównanie centrów rozwoju Tech Offshore: Tech Offshore Europa (Polska), ASEAN (Filipiny), Eurazja (Turcja)
    • Jakie są największe wyzwania CTO i CIO?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • Warunki korzystania z witryny

    Copyright © 2025 by The Codest. Wszelkie prawa zastrzeżone.

    pl_PLPolish
    en_USEnglish de_DEGerman sv_SESwedish da_DKDanish nb_NONorwegian fiFinnish fr_FRFrench arArabic it_ITItalian jaJapanese ko_KRKorean es_ESSpanish nl_NLDutch etEstonian elGreek pl_PLPolish