Options API: Kompozice 
provide 
Poskytujte hodnoty, které mohou být implementovány potomky komponent.
- Typ ts- interface ComponentOptions { provide?: object | ((this: ComponentPublicInstance) => object) }
- Podrobnosti - providea- injectse používají společně, aby umožnili komponentě předka fungovat jako injektor závislostí pro všechny své potomky, bez ohledu na to, jak hluboká je hierarchie komponent, dokud jsou ve stejném rodičovském řetězci.- Volba - provideby měla být buď objekt nebo funkce, která vrací objekt. Tento objekt obsahuje vlastnosti, které jsou dostupné pro vkládání do komponent potomků. V tomto objektu můžete použít klíče typu Symbol.
- Příklad - Základní použití: js- const s = Symbol() export default { provide: { foo: 'foo', [s]: 'bar' } }- Použití funkce pro poskytování stavu pro každou komponentu: js- export default { data() { return { msg: 'foo' } } provide() { return { msg: this.msg } } }- Mějte na paměti, že výše uvedená poskytnutá hodnota - msgnebude reaktivní. Pro více informací se podívejte na Práci s reaktivitou.
- Viz také: Provide / Inject 
inject 
Deklaruje vlastnosti, které se mají implementovat do aktuální komponenty vyhledáváním z poskytovatelů v hierarchii předků.
- Typ ts- interface ComponentOptions { inject?: ArrayInjectOptions | ObjectInjectOptions } type ArrayInjectOptions = string[] type ObjectInjectOptions = { [key: string | symbol]: | string | symbol | { from?: string | symbol; default?: any } }
- Podrobnosti - Volba - injectby měla být buď:- Pole řetězců, nebo
- Objekt, kde klíče jsou názvy místních vazeb a hodnota je buď: - Klíč (string nebo Symbol), který se má vyhledat v dostupných injections, nebo
- Objekt, kde: - Vlastnost fromje klíč (string nebo Symbol), který se má vyhledat v dostupných injections, a
- Vlastnost defaultse používá jako fallback hodnota. Podobně jako u výchozích hodnot props, pro objektové typy je třeba použít tovární funkci, aby se zabránilo sdílení hodnot mezi více instancemi komponent.
 
- Vlastnost 
 
 - Implementovaná vlastnost bude - undefined, pokud nebyla poskytnuta odpovídající vlastnost ani výchozí hodnota.- Všimněte si, že vazby implementovaných hodnot nejsou reaktivní. To je záměrné. Nicméně, pokud je vložená hodnota reaktivní objekt, vlastnosti tohoto objektu zůstávají reaktivní. Pro více informací se podívejte na Práci s reaktivitou. 
- Příklad - Základní použití: js- export default { inject: ['foo'], created() { console.log(this.foo) } }- Použití implementované hodnoty jako výchozí hodnoty pro vlastnost (prop): js- const Child = { inject: ['foo'], props: { bar: { default() { return this.foo } } } }- Použití implementované hodnoty jako vstupu do dat: js- const Child = { inject: ['foo'], data() { return { bar: this.foo } } }- Implementace může být volitelná s výchozí hodnotou: js- const Child = { inject: { foo: { default: 'foo' } } }- Pokud je třeba implementovat hodnotu z vlastnosti s jiným názvem, použijte pro označení zdrojové vlastnosti - from:js- const Child = { inject: { foo: { from: 'bar', default: 'foo' } } }- Podobně jako u výchozích hodnot vlastností, pro neprimitivní hodnoty je třeba použít tovární funkci: js- const Child = { inject: { foo: { from: 'bar', default: () => [1, 2, 3] } } }
- Viz také: Provide / Inject 
mixins 
Pole objektů s možnostmi (options), které se mají smíchat do aktuální komponenty.
- Typ ts- interface ComponentOptions { mixins?: ComponentOptions[] }
- Detaily - Volba - mixinspřijímá pole mixin objektů. Tyto objekty mohou obsahovat volby instance (instance options) jako normální objekty instance (instance objects) a budou sloučeny do konečné podoby pomocí určité logiky sloučení volby. Například, pokud váš mixin obsahuje- createdhook a sama komponenta také, budou volány obě funkce.- Hooks pro mixins jsou volány v pořadí, v jakém jsou poskytnuty, a před hooks samotného komponentu. - Už není doporučeno - Ve Vue 2 byly mixinové funkce hlavním mechanismem pro vytváření znovupoužitelných částí logiky komponenty. Ačkoli jsou mixinové funkce ve Vue 3 nadále podporovány, nyní jsou preferovaným přístupem pro znovupoužití kódu mezi komponentami composable funkce pomocí Composition API. - Příklad
 js- const mixin = { created() { console.log(1) } } createApp({ created() { console.log(2) }, mixins: [mixin] }) // => 1 // => 2
extends 
„Základní třída“ komponenty, ze které se dědí.
- Typ
ts
interface ComponentOptions {
  extends?: ComponentOptions
}- Detaily - Umožňuje jedné komponentě rozšířit jinou a zdědit její možnosti. - Z implementačního hlediska je - extendstéměř identické jako- mixins. S komponentou specifikovanou pomocí- extendsbude zacházeno tak, jako by byla prvním mixinem.- Nicméně, - extendsa- mixinsvyjadřují různé záměry. Volba- mixinsse především používá k sestavování částí funkcionality, zatímco- extendsse především zabývá dědičností.- Stejně jako u - mixinsbudou jakékoli možnosti (kromě- setup()) sloučeny pomocí příslušné strategie pro sloučení.
- Příklad 
js
const CompA = { ... }
const CompB = {
  extends: CompA,
  ...
}Nedoporučeno pro Composition API
extends je navrženo pro Options API a neřeší sloučení hooku setup().
V Composition API je preferovaný mentální model pro znovupoužití logiky „kompozice“ před „dědičností“. Pokud máte logiku z komponenty, kterou chcete znovu použít v jiné komponentě, zvažte extrakci příslušné logiky do composable objektu.
Pokud stále chcete „rozšířit“ komponentu pomocí Composition API, můžete zavolat setup() základní komponenty v setup() rozšiřující komponenty:
js
import Base from './Base.js'
export default {
  extends: Base,
  setup(props, ctx) {
    return {
      ...Base.setup(props, ctx),
      // místní vazby
    }
  }
}