• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Kilkukrotne użycie komponentu Vue - unikanie redundancji

0 głosów
383 wizyt
pytanie zadane 19 września 2020 w JavaScript przez Artek Stary wyjadacz (11,800 p.)
Rozważmy następującą sytuację : Mam stronę na której używam Vue.js. Na jednej z podstron tworzę instancję Vue i wykorzystuję komponent o nazwie <navbar>. Komponent navbar wykorzystuje inny komponent o nazwie <green-button>. I teraz zauważyłem, że nawet jeżeli navbar już wykorzystuje green-button to ja i tak chcąc używać green-button w obrębie "el" muszę go i tak zaimportować ponownie. Czy to nie jest niepotrzebne powielanie? Nie dałoby się jakoś ponownie wykorzystać ten komponent zaimportowany do komponentu navbar? W swojej aplikacji używam też odrębnego modułu do tłumaczenia tekstu. Zastanawiam się jakby to zrobić aby raz wczytać moduł aby każdy komponent mógł go wykorzystywać.

1 odpowiedź

+2 głosów
odpowiedź 19 września 2020 przez niezalogowany
wybrane 19 września 2020 przez Artek
 
Najlepsza

Zainportuj globalnie powtarzające się komponenty

komentarz 19 września 2020 przez Artek Stary wyjadacz (11,800 p.)
No w sumie dziwie się, że sam na to nie wpadłem :D
komentarz 19 września 2020 przez Artek Stary wyjadacz (11,800 p.)
W sumie jak tak bardziej się nad tym zastanawiam to efekt jest taki jak prosiłem jednak trzeba wszystko deklarować globalnie a niektóre komponenty mogą składać się z kilku innych i trzeba zaimportować każdy trochę to kłopotliwe.
1
komentarz 19 września 2020 przez niezalogowany

Takie życie w świecie komponentów :c Jeśli jest tego sporo, można sobie dodawanie globalnych komponentów zautmatyzować

komentarz 19 września 2020 przez Artek Stary wyjadacz (11,800 p.)

Zrobiłem taki manewr.

import Vue from 'vue';
import ClickDetector from '@jscomponents/click_detector.vue';
import Navbar  from '@jscomponents/navbar.vue';
import TextInputCombo  from '@jscomponents/form_controls/text_input_combo.vue';
import Translator from '@js/modules/helpers/translator.js';
import SubmitButton from '@jscomponents/form_controls/submit_button.vue';
import IconClose from '@jscomponents/form_controls/icon_close.vue';
import PhantomButton from '@jscomponents/form_controls/phantom_button.vue';
import LabeledCheckbox from '@jscomponents/form_controls/labeled_checkbox.vue';

export default {
     build(){
        Vue.component('navbar', Navbar);
        Vue.component('click-detector', ClickDetector);
        Vue.component('text-input-combo', TextInputCombo);
        Vue.component('submit-button', SubmitButton);
        Vue.component('phantom-button', PhantomButton);
        Vue.component('labeled-checkbox', LabeledCheckbox);
        Vue.component('icon-close', IconClose);
        Vue.prototype.translator = Translator;
        return Vue;
     }
};

 

komentarz 19 września 2020 przez niezalogowany
No.. to jeszcze nie tak dużo : D

Podobne pytania

+1 głos
1 odpowiedź 598 wizyt
pytanie zadane 3 sierpnia 2021 w JavaScript przez mikey Użytkownik (820 p.)
+4 głosów
3 odpowiedzi 975 wizyt
0 głosów
0 odpowiedzi 607 wizyt

93,631 zapytań

142,553 odpowiedzi

323,056 komentarzy

63,137 pasjonatów

Advent of Code 2025

Top 15 użytkowników

  1. 2416p. - dia-Chann
  2. 2390p. - DziarnowskiJ
  3. 2317p. - raydeal
  4. 2300p. - Adrian Wieprzkowicz
  5. 2243p. - rucin93
  6. 2242p. - Łukasz Piwowar
  7. 2222p. - CC PL
  8. 2117p. - Łukasz Eckert
  9. 2082p. - Michal Drewniak
  10. 1957p. - Maurycy W
  11. 1885p. - robwarsz
  12. 1811p. - rafalszastok
  13. 1600p. - Rafał Trójniak
  14. 1588p. - Tomasz Bielak
  15. 1377p. - ssynowiec
Szczegóły i pełne wyniki

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...