Technology sharing

Complete explicatio Vue III communicationis componentis: a basic ad artes provectae

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

introductio

Vue 3 Compositionem API inducit, quae novam flexibilitatem et potentiam ad communicationem componentium affert.

Component communicationis basics

Definitio et functio partium

Ante-finem evolutionis partes possunt cogitari de unitatibus independentibus quae interfaciem usoris construunt. Encapsulat functiones specificas et stilos, reddi potest, explicari et examinari sine aliis partibus potest. Praecipua partium partium munus est ad meliorem codicem reusability, conservabilitas et scalabilitas. Scindo interface in plures partes, tincidunt facilius complexum applicationes administrare possunt, et unaquaeque pars optimized est ut altiore progressione evolutionis efficacia et applicatione effectus emendare possit.

Lignum elementum et parentem-parens necessitudinem componentes

Artificia ante-finem sicut Vue.js, partes nidificari possunt ad formam arboris componentis. In hac arbore structurae singulae componentes sub-componentes habere possunt, et hi sub-componentes suas sub-componentes habere possunt, structuram hierarchicam efformantes. Haec structura relationem inter partes claram reddit et administrationem et sustentationem faciliorem reddit.

  • Parentis-puer pars necessitudinem : In arbore componente, pars alia componentis creare potest. Parens components potest notitias et modos ad puerum elementa transire, et puer elementa mittere possunt notitias ad parentem per eventus elementa. Haec relatio infantis parentis fundamentum est communicationis componentis.
  • Fratrem fratrem componentis necessitudinem : Multiplices pueri partes sub eodem parente componente sunt relationes germanorum componentium. Sibling partes non possunt directe inter se communicare, et communicatio inter eos plerumque indiget ut per elementum parentis indicetur.
  • Antecessor et abneptis relationes componentes : In arbore componente, pars parentis est componentis antecessoris componentis, et puer pars prolis componentia est abneptis. Haec relatio maxime momenti est in tractando cum componentibus penitus nested.

Notiones arborum componentium et relationes parentium componentium cruciabiles sunt ad communicationem componentium cognoscendam. Has scientias fundamentales domito adiuvare possunt tincidunt ad designandum et machinationes communicationis efficiendas inter partes efficacius.

Parentis pueri communicationis componentes (Vue III)

Parentis notitia transit ad puerum (Props)

Quid adminicula
Adminicula sunt mechanisma ad elementa ad parentem tradendum data ad puerum pertinentia.In Vue 3, uteredefinePropsAPI declarare consuevit adminicula recipiendi, quae unum-via notitiarum fluxum conservat et independentiam et reusability componentium praestat.

Quomodo adminicula in parente component?
In forma parentis component, uterev-bindaut abbreviationem:Data ligare:

  1. <template>
  2. <ChildComponent :my-prop="parentData" />
  3. </template>

hic,:my-propHoc est propositum dynamice ligatum;parentDataData est in parente componente definitur

Quomodo accipere adminicula in puero component?
In pueri componentibus, uteredefinePropsAcceptum declarare adminicula:

  1. <script setup>
  2. import { defineProps } from 'vue';
  3. const props = defineProps({
  4. myProp: String
  5. });
  6. </script>

exist<script setup>In saccharo syntactico,definePropsEt sponte adminicula exponere responsurum proprietates componentium

Puer transit eventum ad parentem (Emit)

quid emit?
Emittere est mechanismum pro puero componentium mittere nuntios ad partes parentis.In Vue 3, uteredefineEmitsAPI ad declarandum res emitti possunt, et utereemitmunus ad trigger certe.

Quam ad trigger eventu in puero component
In modum pueri componentis, utere defineEmits declarare eventus qui emitti possunt, et utere emit ad trigger:

  1. <script setup>
  2. import { defineEmits } from 'vue';
  3. const emit = defineEmits(['my-event']);
  4. function triggerEvent() {
  5. emit('my-event', dataToPass);
  6. }
  7. </script>

defineEmitsadhibetur ad declarandum quod pars emittere potest, dumemitMunera his eventibus felis adhibentur.

Quomodo audire puerum eventus componentes in parente component?
in the template of the parentis component;ususv-onaut abbreviationem@ Ad audiendas res emissas a puero compositas;

  1. <template>
  2. <ChildComponent @my-event="handleEvent" />
  3. //或者<ChildComponent v-on:my-event="handleEvent" />
  4. </template>

hic,@my-eventIndicat audientem subcomponent emitsmy-eventeventus,handleEventModus definitus est in parente componente.

Comprehensive exemplum

Id est a parente componentParentComponentet subcomponentChildComponent, pars parentis notitias ad puerum componentem transmittere debet, et puer componentia parentem post specificam operationem certiorem facere debet.

parens componentParentComponent.vue

  1. <template>
  2. <ChildComponent :my-prop="parentData" @child-event="handleChildEvent" />
  3. </template>
  4. <script setup>
  5. import { ref } from 'vue';
  6. import ChildComponent from './ChildComponent.vue';
  7. const parentData = ref('initial data');
  8. const handleChildEvent = (data) => {
  9. console.log('Received data from child:', data);
  10. };
  11. </script>

SubassemblyChildComponent.vue

  1. <template>
  2. <button @click="sendDataToParent">Send Data to Parent</button>
  3. </template>
  4. <script setup>
  5. import { defineProps, defineEmits } from 'vue';
  6. const props = defineProps({
  7. myProp: String
  8. });
  9. const emit = defineEmits(['child-event']);
  10. function sendDataToParent() {
  11. emit('child-event', props.myProp);
  12. }
  13. </script>

In hoc exemplo transiens elementum parentis:my-propTransi notitia ad puerum components et pass@child-event Certe audi tium infantum emittitur.puer pars transitdefinePropsContentum accipit a parente transierunt componentmyPropatque uti in eventu strepita strepitaemitMitte ad parens pars notitia.

Using Pinia (administration library state for Vue 3)

Pinia commoda et lineamenta

Pinia est bibliotheca administratione publica publice commendata pro Vue 3. Praebet viam componentis fundatam ad applicationem status administrandi. Hic nonnulla sunt clavium utilitates et lineamenta Piniae:

  • Component API: Pinia adoptat API component-fundatur, disjunctionem administrationis status et logicam componentium naturalem magis facit.
  • TypeScript auxilium: Pinia TypeScript subsidium ab initio consideravit, ut melioris generis coniecturam et editor subsidium cum enucleando in TypeScript.
  • Modular: Pinia permittit ut statum in plures thesauros scindat, et unaquaeque copia independenter suum statum et logicam administrare possit.
  • Compositum API compatible: Pinia perfecte integrata est cum Compositione API de Vue III, faciens separationem administrationis status et logicae componentis magis naturalem.
  • Tempus peregrinatione debugging: Pinia tempus praebet facultatem peregrinatione debugging, tincidunt ut facile commodat et mutationes status inspiciat.
Quomodo statuatur et utatur Pinia?

Ut Pinia utere incipias, primum debes Piniam instituere;

npm install pinia

Vel uti tinctum;

yarn add pinia

Deinde pone Piniam in applicatione tua Vue;

  1. import { createPinia } from 'pinia';
  2. const pinia = createPinia();
  3. app.use(pinia);

Copiam crea:

  1. import { defineStore } from 'pinia';
  2. export const useCounterStore = defineStore('counter', () => {
  3. const count = ref(0);
  4. function increment() {
  5. count.value++;
  6. }
  7. return { count, increment };
  8. });

Copia usus in componentibus:

  1. <script setup>
  2. import { useCounterStore } from '@/stores/counter';
  3. const counterStore = useCounterStore();
  4. </script>
  5. <template>
  6. <div>
  7. <p>Count: {{ counterStore.count }}</p>
  8. <button @click="counterStore.increment">Increment</button>
  9. </div>
  10. </template>
Pinia integratio cum components

Pinia integratio cum componentibus est valde simplex, maxime perdefineStore munus facere copia. In componentibus, publica ac methodi in copia directe uti potes;

  1. <template>
  2. <div>
  3. <p>Count: {{ count }}</p>
  4. <button @click="increment">Increment</button>
  5. </div>
  6. </template>
  7. <script setup>
  8. import { useCounterStore } from '@/stores/counter';
  9. const counterStore = useCounterStore();
  10. const { count, increment } = storeToRefs(counterStore);
  11. //如果这里不使用storeToRefs会丢失响应式特性
  12. </script>

In exemplo praecedente directe accedimus in templatecountut ostenderet valorem calculonis appellant in felis click eventumincrementModus ad valorem contra incrementum.

Vue 3 unique communicationis modus

Provide / Inject

Basic usus est Provide / Inject
In Vue 3,provideetinjectEst methodus communicationis inter parentem et puerum, quae antecessori admittit ut dependentiam in omnes partes suas injiciat, quantumvis altae hierarchiae componentis.

  • providere notitia: Antecessoris componentis ususprovideMunera praebent data.
  • Inject notitia: used by descendat componentsinjectMunus infundit data.

Applicatur missionibus ad Provide / Inject
provideetinjectIta convenit his missionibus;

  • Cum vis vitare per plures stratispropscum obiter data.
  • Cum vis multa elementa in arbore componente communicare data.

Sample code

  1. // 祖先组件
  2. export default {
  3. setup() {
  4. const message = 'Hello from Ancestor!';
  5. provide('message', message);
  6. }
  7. }
  8. // 子孙组件
  9. export default {
  10. setup() {
  11. const message = inject('message');
  12. return { message };
  13. }
  14. }
Ianuae

De intellectu et usu Ianuae
TeleportNovum constructum-in component in Vue 3 est quod te permittit ut "transmittere" partem Formulae intra componentem ad alium locum in DOM.

Quomodo uti Ianuae communicationis componentes
Teleport Non ad communicationem inter partes adhibetur, sed ad moderandam positionem partium reddendam.sed uti potesTeleportPeculiaris modus communicationis obtinetur reddendo partes componentis in dommo parentis.

Sample code

  1. <!-- 父组件 -->
  2. <template>
  3. <div>
  4. <Teleport to="body">
  5. <ChildComponent />
  6. </Teleport>
  7. </div>
  8. </template>
  9. <!-- 子组件 -->
  10. <template>
  11. <div>Some content</div>
  12. </template>
Compositio API

Introductio ad Compositionem API
Vue 3 Compositionem API inducit, quae novam methodum ad logicam et reuse componendam praebet.passsetupMunera permittunt tincidunt mollius moderari statum responsivum et cyclum vitae componentium.

Usus ref et reciprocus pro communicationis inter-componentis
refetreactiveInstrumentum est in Compositione API ad datam responsivam creandam.

  • refReactivum references ad partum basic notitia genera.
  • reactiveReactivum respectum ad partum objectum genera.

Usura praebere et injicere in compositione API
In compositione API,provideetinjectlicitasetupAdhibentur in muneribus ad communicationem crucis-componentis consequendam.

Sample code

  1. // 祖先组件
  2. import { provide } from 'vue';
  3. export default {
  4. setup() {
  5. const message = ref('Hello from Ancestor!');
  6. provide('message', message);
  7. }
  8. }
  9. // 子孙组件
  10. import { inject } from 'vue';
  11. export default {
  12. setup() {
  13. const message = inject('message');
  14. return { message };
  15. }
  16. }

Per has rationes unicas communicationis Vue III, tincidunt magis communicationem inter partes componere mollius possunt et ad conservabilitatem ac reusability codicis emendare.

Summatim

Vue 3 Compositionem API inducit, quae novas flexibilitates et validas notas ad communicationem componentium affert. Communicatio pars est clavis ad usorem complexum aedificandi interfacies ante-finem evolutionis. Involvit notitias translationis et eventus excitat inter partes parentem et puerum, partes germanos, et antecessorem et descendentem. Vue 3 varios modos communicationis praebet, inter adminicula et emittunt traditional, necnon novam Provide/Inject, Ianuae et Compositionis API.

Commendatur related notitia

  • Vue 3 officialis documenta Vue.js - The Progressive JavaScript Framework | Vue.js- Documenta officialis est praestantissima subsidia discendi Vue 3, inter duces distinctos et API indiciorum.
  • Vue.js 3 Composition API Tutorial Composition API FAQ | Vue.js- Official Composition API doceo ut cito incipias adiuvare.
  • Pinia documenta publica Pinia | Copia intuitiva pro Vue.js- Si Pinia administratione rei publicae uti cogitas, documentum officialis Piniae est optima scientiarum subsidia.
  • Vue.js technologia revelataPraefatio |- Hoc consilium est quod machinam internam de Vue.js penitus effingit, quae adiuvat ad intellegendum quomodo Vue opera habeat.

Creatio non est facilis.