The Codest
  • O nás
  • Služby
    • Vývoj softwaru
      • Vývoj frontendů
      • Vývoj backendu
    • Staff Augmentation
      • Vývojáři frontendů
      • Vývojáři backendu
      • Datoví inženýři
      • Cloudoví inženýři
      • Inženýři QA
      • Další
    • To Advisory
      • Audit a poradenství
  • Odvětví
    • Fintech a bankovnictví
    • E-commerce
    • Adtech
    • Healthtech
    • Výroba
    • Logistika
    • Automobilový průmysl
    • IOT
  • Hodnota za
    • CEO
    • CTO
    • Manažer dodávek
  • Náš tým
  • Case Studies
  • Vědět jak
    • Blog
    • Setkání
    • Webové semináře
    • Zdroje
Kariéra Spojte se s námi
  • O nás
  • Služby
    • Vývoj softwaru
      • Vývoj frontendů
      • Vývoj backendu
    • Staff Augmentation
      • Vývojáři frontendů
      • Vývojáři backendu
      • Datoví inženýři
      • Cloudoví inženýři
      • Inženýři QA
      • Další
    • To Advisory
      • Audit a poradenství
  • Hodnota za
    • CEO
    • CTO
    • Manažer dodávek
  • Náš tým
  • Case Studies
  • Vědět jak
    • Blog
    • Setkání
    • Webové semináře
    • Zdroje
Kariéra Spojte se s námi
Šipka zpět ZPĚT
2022-06-02
Vývoj softwaru

Přestat používat rozhraní API Options v Vue

The Codest

Paweł Dlugosz

Vue.js Vývojář

Proč byste neměli používat rozhraní API Options v aplikaci Due? Odpověď na tuto otázku najdete v následujícím článku a zjistíte, jaké výhody přináší rozhraní Composition API.

Vue 3 představil nový přístup k vytváření komponent nazvaný Složení API. Je to alternativa k Rozhraní API pro volby. Rozhraní Composition API je zcela volitelné a nemusíte ho používat, pokud chcete používat. Vue 3. Přináší však některá důležitá vylepšení, která usnadňují práci a zlepšují čitelnost. kód.

Výhody rozhraní Composition API oproti rozhraní Options API

1. Lepší organizace a čitelnost kódu.

Rozhraní API Composition zavádí novou metodu nazvanou nastavení. V něm můžete vytvořit všechny potřebné prvky komponenty, jako jsou: data, metody, vypočtené vlastnosti, watchers. Díky tomu můžete udržet kód čistý tím, že logiku odpovědnou za danou funkci umístíte na jedno místo. Naproti tomu rozhraní API Options si vynutilo rozptýlení logiky po celém souboru. Výsledkem bylo, že kód nebyl čitelný a vyžadoval rolování. V rozhraní Composition API již není nutné metody, watchery atd. seskupovat podle typu, můžete je umístit, jak uznáte za vhodné.

Možnosti API a příklad složení

2. Vyjmutí a opětovné použití logiky.

Rozhraní API Composition umožňuje psát reaktivní kód kdekoli. Některou reaktivní logiku můžete vytáhnout mimo komponentu. Tento typ kódu se nazývá Kompozitní materiály. Komponenty lze importovat do mnoha komponent a umožňují zapouzdřit některé logické prvky a vystavit potřebné reaktivní prvky.

// shopping-list.js
import ( computed ) z "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,
  );
)

// Komponenta
import useSpoppingList z "@/composables/shopping-list.js";
exportovat výchozí (
  setup() (
    const ( products, productsCount, deleteProduct ) = useSpoppingList();
    return ( products, productsCount, deleteProduct );
  ),
);

3. Snadné používání konstant a externích zdrojů v komponentě.

Chcete-li v rozhraní API Options přidat např. statický seznam položek importovaných z jiného souboru, musíte jej přidat do funkce data() (což má negativní dopad na výkon) nebo jej přidat do funkce tento na adrese created(). Oba způsoby nejsou příliš elegantní. Rozhraní API Composition a nový nastavení přichází na pomoc metoda, ze které lze exportovat nejen reaktivní věci, ale také konstanty a externí závislosti.

import list z "./list.json";
export default (
  setup() (
    return ( list );
  ),
);
  1. V aplikaci Vue 2 můžete použít i rozhraní API Composition.

Díky oficiálnímu @vue/composition-api můžete použít rozhraní Composition API v Vue 2 také.

Jak používat nové rozhraní API Composition?

<h3>Způsob nastavení</h3>

setup() je nová metoda přidaná do funkce Vue 3 kam můžete umístit všechny potřebné položky, jako jsou datové objekty, metody atd. Odtud můžete vrátit prvky, které chcete do šablony zahrnout.

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

reaktivní()

Chcete-li vytvořit reaktivní objekt nebo pole, musíte jej vytvořit pomocí příkazu reactive(defaultValue) metoda. Počáteční hodnotu tohoto objektu můžete předat jako argument metody. Metoda vrací hodnotu proxy pro tento objekt, takže když v něm provedete změny, Vue o nich ví a může správně obnovit zobrazení.

Složení API

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

Rozhraní API pro volby

exportovat výchozí (
  data() (
    return (
      user: (
        name: "John",
        role: "ADMIN",
      ),
    );
  ),
);

Reactive pouze funguje pro typy objektů (objekty, pole a typy kolekcí, jako jsou např. Mapa a Sada). Nemůže obsahovat primitivní typy, jako např. řetězec, číslo nebo boolean. Takže Vue také zavádí ref().

ref()

Chcete-li primitivním prvkům přidat reaktivitu, musíte je obalit pomocí ref().

Složení API

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

Rozhraní API pro volby

exportovat výchozí (
  data() (
    return (
      count: 10,
    );
  ),
);

Úprava reaktivních objektů

Hodnoty v objektech můžete měnit přímo z reaktivní metody, ale pro změnu primitivních hodnot musíte použít metodu .value pole.

import ( ref, reactive ) z "vue";
exportovat výchozí (
  setup() (
    const user = reactive((
      name: "John",
    ));
    user.name = "John Doe"; // Změna hodnoty

    const count = ref(10);
    count.value = 20; // Změna hodnoty

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

Vy ne je třeba použít .value v šabloně.

<div>(( počet ))</div>

Vypočtené vlastnosti

Vypočtené vlastnosti lze snadno vytvořit předáním metody jako parametru importovanému příkazu vypočteno() metoda.

import ( reactive, computed ) z "vue";
exportovat výchozí (
  setup() (
    const list = reactive([
      "Item 1",
      "Item 2",
    ]);

    // Vypočítáno
    const isEmpty = computed(() => list.length === 0);

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

Metody

Metody můžete také vnořit do nastavení metoda.

Složení API

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

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

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

Watchers

Hlídači se vytvářejí podobně jako vypočtené. Nezapomeňte však předat proxy objekt, tj. název, jako v příkladu níže, nikoliv name.value hodnotu samotnou.

import ( watch, ref ) z "vue";
exportovat výchozí (
  setup() (
    const name = ref("John");
        // Watcher
    watch(name, (currentValue, oldValue) => (
      console.log(`Hodnota změněna z $(oldValue)na $(currentValue)`);
    ));
    return ( name );
  ),
);

Souhrn

V tomto článku jsem uvedl pouze základy rozhraní API Composition, abyste měli obecnou představu o tom, v čem se liší a jaké má výhody oproti rozhraní API Options. Rozhraní Composition API také poskytuje alternativy k ostatním prvkům komponenty, jako např. háčkya zavádí nové metody, jako např. watchEffect. Je dobré si ji přečíst v oficiální verzi. Vue 3 dokumentace.

banner spolupráce

Související články

Vývoj softwaru

Nástroje Javascript v akci

Objevte některé nástroje pro načítání JavaScript, které vám pomohou zlepšit vaši programovací hru. Zjistěte více o ESLint, Prettier a Husky!

The Codest
Reda Salmi React Vývojář
Vývoj softwaru

Najímání interních a externích vývojářů

Najímání zaměstnanců interně nebo externě? To je zásadní dilema! V následujícím článku se dozvíte, jaké jsou výhody outsourcing nebo budování interního týmu.

The Codest
Grzegorz Rozmus Vedoucí jednotky Java
Vývoj softwaru

Výhody a nevýhody modelu React

Proč se vyplatí používat React? Jaké výhody má tato knihovna JavaScript? Chcete-li se dozvědět odpovědi, ponořte se do tohoto článku a zjistěte skutečné výhody používání React.

The Codest
Cezary Goralski Software Engineer
Vývoj softwaru

Srovnání šampionů: Angular vs Vue

V současné době existuje několik běžně používaných frontendových frameworků, které jejich tvůrci neustále vyvíjejí, přičemž každý z nich se mírně liší od toho druhého. A přesto mohou mít něco společného. Zde...

Oliwia Oremek

Přihlaste se k odběru naší znalostní databáze a získejte aktuální informace o odborných znalostech z oblasti IT.

    O nás

    The Codest - Mezinárodní společnost zabývající se vývojem softwaru s technologickými centry v Polsku.

    Spojené království - ústředí

    • Kancelář 303B, 182-184 High Street North E6 2JA
      Londýn, Anglie

    Polsko - Místní technologická centra

    • Kancelářský park Fabryczna, Aleja
      Pokoju 18, 31-564 Krakov
    • Brain Embassy, Konstruktorska
      11, 02-673 Varšava, Polsko

      The Codest

    • Home
    • O nás
    • Služby
    • Case Studies
    • Vědět jak
    • Kariéra
    • Slovník

      Služby

    • To Advisory
    • Vývoj softwaru
    • Vývoj backendu
    • Vývoj frontendů
    • Staff Augmentation
    • Vývojáři backendu
    • Cloudoví inženýři
    • Datoví inženýři
    • Další
    • Inženýři QA

      Zdroje

    • Fakta a mýty o spolupráci s externím partnerem pro vývoj softwaru
    • Z USA do Evropy: Proč se americké startupy rozhodly přesídlit do Evropy?
    • Srovnání technických vývojových center v zahraničí: Tech Offshore Evropa (Polsko), ASEAN (Filipíny), Eurasie (Turecko)
    • Jaké jsou hlavní výzvy CTO a CIO?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • Website terms of use

    Copyright © 2026 by The Codest. Všechna práva vyhrazena.

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