În aplicația am o mulțime de funcții utilitatere care fac diferite lucruri, de la analiza șirurilor până la realizarea toastelor și așa mai departe.
Întrebarea mea este cum le accesez în alte fișiere .vue? Nu vreau să rescriu aceste funcții pentru fiecare componentă Vue nouă pe care o scriu.
Voi putea să le folosesc importând o componentă în alta? (Vue vrea sa adaug componenta în template, ceea ce înseamnă că nu pot importa doar acel JavaScript).
Dacă da, care este modalitatea standard de a face acest lucru?
Partajare funcții între componente Vue.js
-
- Mesaje:60
Partajare funcții între componente Vue.js
MarPlo
Mesaje:4343
Pentru asta poți utiliza Mixins.
1. Importa componenta de care ai nevoie.
2. adăuga un mixin array ca mai jos în componenta ta, chiar deasupra zonei de date (sau undei posibil):
Apeleaza metoda dorita folosind:
Mai multe poți găsi aici: Vue Mixins
Sau:
Pune-le pe toate într-un modul comune, 'src/utils.js', apoi fiecare componentă Vue poate importa după cum este necesar:
Apoi, in fisierele .vue:
1. Importa componenta de care ai nevoie.
2. adăuga un mixin array ca mai jos în componenta ta, chiar deasupra zonei de date (sau undei posibil):
Cod: Selectaţi tot
mixins:[yourimportedcomponent], data:...
Cod: Selectaţi tot
this.theMethodYouWant();
Sau:
Pune-le pe toate într-un modul comune, 'src/utils.js', apoi fiecare componentă Vue poate importa după cum este necesar:
Cod: Selectaţi tot
// src/utils.js
const funcA = () => {
console.log('funcA');
}
const funcB = () => {
console.log('funcB');
}
export { funcA, funcB }
Cod: Selectaţi tot
// VueComponentA.vue
import { funcA } from 'path/to/utils';
// VueComponentB.vue
import { funcB } from 'path/to/utils';
Subiecte similare
- Animație cu pauză între fiecare rotație
HTML - XHTML - CSS Primul mesaj
Am un Div pe care vreau să-l rotesc de la 0 la 90 grade, pauză 2s, apoi de la 90 la 180, iar pauză 2s .., tot asa până la 360 de grade.Ultimul mesaj
Vreo idee...
Puteți face cu animații CSS transform: rotate() , ca în exemplu de mai jos.
Setezi timpul de rotatie la 12 secunde si incepi cele 4 rotatii...