le mie informazioni di contatto
Posta[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Vue 3 introduce l'API Composition, che apporta nuova flessibilità e potenza alla comunicazione dei componenti.
Nello sviluppo front-end, i componenti possono essere considerati come unità indipendenti che costruiscono un'interfaccia utente. Incapsula funzionalità e stili specifici, può essere riutilizzato e sviluppato e testato indipendentemente da altre parti. La funzione principale dei componenti è migliorare la riusabilità, la manutenibilità e la scalabilità del codice. Suddividendo l'interfaccia in più componenti, gli sviluppatori possono gestire più facilmente applicazioni complesse e ciascun componente può essere ottimizzato per migliorare l'efficienza complessiva dello sviluppo e le prestazioni delle applicazioni.
Nei framework front-end come Vue.js, i componenti possono essere annidati per formare un albero dei componenti. In questa struttura ad albero, ogni componente può avere sottocomponenti e questi sottocomponenti possono avere i propri sottocomponenti, formando una struttura gerarchica. Questa struttura rende chiara la relazione tra i componenti e facilita la gestione e la manutenzione.
I concetti di alberi dei componenti e di relazioni tra i componenti padre-figlio sono cruciali per comprendere la comunicazione dei componenti. Padroneggiare queste conoscenze di base può aiutare gli sviluppatori a progettare e implementare meccanismi di comunicazione tra i componenti in modo più efficace.
Cosa sono gli oggetti di scena
Gli oggetti di scena sono un meccanismo che consente ai componenti principali di passare dati ai componenti secondari.In Vue 3, utilizzaredefineProps
L'API viene utilizzata per dichiarare le proprietà di ricezione, che mantengono il flusso di dati unidirezionale e garantiscono l'indipendenza e la riusabilità dei componenti.
Come passare gli oggetti di scena nel componente genitore
Nel modello del componente principale, utilizzarev-bind
o abbreviazione:
Per associare i dati:
- <template>
- <ChildComponent :my-prop="parentData" />
- </template>
Qui,:my-prop
Indica che si tratta di un oggetto di scena legato dinamicamente,parentData
I dati sono definiti nel componente padre。
Come ricevere oggetti di scena nel componente figlio
Nel componente figlio, utilizzaredefineProps
Per dichiarare gli oggetti di scena ricevuti:
- <script setup>
- import { defineProps } from 'vue';
-
- const props = defineProps({
- myProp: String
- });
- </script>
esistere<script setup>
Nello zucchero sintattico,defineProps
Espone automaticamente gli oggetti di scena come proprietà reattive del componente。
cosa viene emesso
Emit è un meccanismo che consente ai componenti figlio di inviare messaggi ai componenti padre.In Vue 3, utilizzaredefineEmits
API per dichiarare eventi che possono essere emessi e utilizzatiemit
funzione per attivare eventi.
Come attivare l'evento nel componente figlio
Nel metodo del componente figlio, utilizzare defineEmits
per dichiarare eventi che possono essere emessi e utilizzare emit
per innescare:
- <script setup>
- import { defineEmits } from 'vue';
-
- const emit = defineEmits(['my-event']);
-
- function triggerEvent() {
- emit('my-event', dataToPass);
- }
- </script>
defineEmits
viene utilizzato per dichiarare eventi che un componente può emettere, mentreemit
Le funzioni vengono utilizzate per attivare questi eventi.
Come ascoltare gli eventi del componente figlio nel componente genitore
Nel modello del componente principale,utilizzov-on
o abbreviazione@
Per ascoltare gli eventi emessi dai componenti figlio:
- <template>
- <ChildComponent @my-event="handleEvent" />
- //或者<ChildComponent v-on:my-event="handleEvent" />
- </template>
Qui,@my-event
Indica che il sottocomponente in ascolto emettemy-event
evento,handleEvent
È un metodo definito nel componente genitore Quando l'evento viene attivato, questo metodo verrà chiamato.
Supponiamo che ci sia un componente genitoreParentComponent
e un sottocomponenteChildComponent
, il componente principale deve passare i dati al componente secondario e il componente secondario deve inviare una notifica al componente principale dopo un'operazione specifica.
componente genitoreParentComponent.vue
- <template>
- <ChildComponent :my-prop="parentData" @child-event="handleChildEvent" />
- </template>
-
- <script setup>
- import { ref } from 'vue';
- import ChildComponent from './ChildComponent.vue';
-
- const parentData = ref('initial data');
- const handleChildEvent = (data) => {
- console.log('Received data from child:', data);
- };
- </script>
SottoinsiemeChildComponent.vue
- <template>
- <button @click="sendDataToParent">Send Data to Parent</button>
- </template>
-
- <script setup>
- import { defineProps, defineEmits } from 'vue';
-
- const props = defineProps({
- myProp: String
- });
-
- const emit = defineEmits(['child-event']);
-
- function sendDataToParent() {
- emit('child-event', props.myProp);
- }
- </script>
In questo esempio, il componente principale passa:my-prop
Passa i dati ai componenti figlio e passa@child-event
Ascolta gli eventi emessi dai componenti figlio.il componente figlio passadefineProps
Riceve il contenuto passato dal componente principalemyProp
e utilizzarlo nell'evento clic sul pulsanteemit
Invia i dati al componente principale.
Pinia è la libreria di gestione dello stato ufficialmente consigliata per Vue 3. Fornisce un modo basato su componenti per gestire lo stato dell'applicazione. Ecco alcuni dei principali vantaggi e caratteristiche di Pinia:
Per iniziare a utilizzare Pinia, devi prima installare Pinia:
npm install pinia
Oppure usa il filato:
yarn add pinia
Quindi, configura Pinia nella tua applicazione Vue:
- import { createPinia } from 'pinia';
-
- const pinia = createPinia();
- app.use(pinia);
Crea un negozio:
- import { defineStore } from 'pinia';
-
- export const useCounterStore = defineStore('counter', () => {
- const count = ref(0);
-
- function increment() {
- count.value++;
- }
-
- return { count, increment };
- });
Utilizza il negozio nel componente:
- <script setup>
- import { useCounterStore } from '@/stores/counter';
-
- const counterStore = useCounterStore();
- </script>
-
- <template>
- <div>
- <p>Count: {{ counterStore.count }}</p>
- <button @click="counterStore.increment">Increment</button>
- </div>
- </template>
L'integrazione di Pinia con i componenti è molto semplice, principalmente tramitedefineStore
funzione per creare un negozio. Nei componenti è possibile utilizzare direttamente lo stato e i metodi nello store:
- <template>
- <div>
- <p>Count: {{ count }}</p>
- <button @click="increment">Increment</button>
- </div>
- </template>
-
- <script setup>
- import { useCounterStore } from '@/stores/counter';
-
-
- const counterStore = useCounterStore();
- const { count, increment } = storeToRefs(counterStore);
- //如果这里不使用storeToRefs会丢失响应式特性
- </script>
Nell'esempio sopra, accediamo direttamente al templatecount
per visualizzare il valore del contatore e richiamarlo nell'evento clic sul pulsanteincrement
Metodo per incrementare il valore del contatore.
Utilizzo di base di Provide/Inject
In Vue3,provide
Einject
È un metodo di comunicazione tra componenti genitore e figlio che consente a un componente antenato di iniettare una dipendenza in tutti i suoi componenti discendenti, indipendentemente da quanto profonda sia la gerarchia dei componenti.
provide
Le funzioni forniscono dati.inject
La funzione inserisce i dati.Scenari applicabili per Fornire/Iniettareprovide
Einject
Applicabile ai seguenti scenari:
props
quando si passano i dati.Codice d'esempio:
- // 祖先组件
- export default {
- setup() {
- const message = 'Hello from Ancestor!';
- provide('message', message);
- }
- }
-
- // 子孙组件
- export default {
- setup() {
- const message = inject('message');
- return { message };
- }
- }
Il concetto e l'uso del teletrasportoTeleport
Si tratta di un nuovo componente integrato aggiunto in Vue 3, che consente di "trasmettere" una parte del modello all'interno di un componente in qualsiasi altra posizione nel DOM.
Come utilizzare Teletrasporto per la comunicazione dei componentiTeleport
Non viene utilizzato per la comunicazione tra i componenti, ma per controllare la posizione di rendering dei componenti.ma puoi usareTeleport
Uno speciale metodo di comunicazione si ottiene eseguendo il rendering di parti di un componente nel DOM del componente principale.
Codice d'esempio:
- <!-- 父组件 -->
- <template>
- <div>
- <Teleport to="body">
- <ChildComponent />
- </Teleport>
- </div>
- </template>
-
- <!-- 子组件 -->
- <template>
- <div>Some content</div>
- </template>
Introduzione all'API di composizione
Vue 3 introduce l'API Composition, che fornisce un nuovo modo di organizzare e riutilizzare la logica.passaggiosetup
Le funzioni consentono agli sviluppatori di controllare in modo più flessibile lo stato di risposta e il ciclo di vita dei componenti.
Utilizzare ref e reactive per la comunicazione tra componentiref
Ereactive
È uno strumento nell'API di composizione per la creazione di dati reattivi.
ref
Riferimenti reattivi per la creazione di tipi di dati di base.reactive
Riferimento reattivo per la creazione di tipi di oggetto.Utilizzo di supply e inject nell'API Composition
Nell'API di composizione,provide
Einject
ammissibilesetup
Utilizzato nelle funzioni per ottenere la comunicazione tra componenti.
Codice d'esempio:
- // 祖先组件
- import { provide } from 'vue';
-
- export default {
- setup() {
- const message = ref('Hello from Ancestor!');
- provide('message', message);
- }
- }
-
- // 子孙组件
- import { inject } from 'vue';
-
- export default {
- setup() {
- const message = inject('message');
- return { message };
- }
- }
Attraverso questi metodi di comunicazione unici di Vue 3, gli sviluppatori possono organizzare in modo più flessibile la comunicazione tra i componenti e migliorare la manutenibilità e la riusabilità del codice.
Vue 3 introduce l'API Composition, che apporta nuova flessibilità e potenti funzionalità alla comunicazione dei componenti. La comunicazione dei componenti è la chiave per creare interfacce utente complesse nello sviluppo front-end. Implica il trasferimento di dati e l'attivazione di eventi tra componenti padre e figlio, componenti di pari livello e componenti antenato e discendente. Vue 3 offre una varietà di metodi di comunicazione, inclusi oggetti di scena tradizionali ed emissione, nonché le nuove API Provide/Inject, Teleport e Composition.
La creazione non è facile. Se questo articolo ti è d'aiuto, puoi darmi un mi piace?