Pereiti prie turinio

[Vue.js] Dinaminis importavimas (ir atvaizdavimas kaip komponentą)


Rekomenduojami pranešimai

Sveiki. Turiu komponentą, kuris importuoja SVG ikonas.

Šitas kodas veikia puikiai:

 


<template>
   <footer>
           <FacebookIcon />
   </footer>
</template>

<script>
   import FacebookIcon from '../assets/svg/facebook.svg';

   export default {
       components: {
           [size=2]FacebookIcon[/size][size=2] [/size]
       },
   };
</script>

 

Bet jei tokių ikonų pvz. 30, toks variantas nepatogus.

Bandžiau daryti tokį variantą:


<template>
   <Icon />
</template>


<script>
   export default {
       props: ['icon'],
       components: {
           Icon: () => this.loadIcon()
       },
       methods: {
           loadIcon() {
               let iconName = this.icon + '.svg';
               return System.import('../assets/svg/'+iconName);
           }
       }
   }
</script>

Bet neveikia. this.icon = undefined.

 

Kaip jūs pasidarot dinaminius importus?

Nuoroda į pranešimą
Dalintis kituose puslapiuose

<template>
   <Icon />
</template>

 

kurioje čia vietoje jis užsetintas?

 

siūlyčiau pasiskaityti https://vuejs.org/v2/guide/components-props.html (o dar geriau, pradėt skaityt dokumentaciją nuo pradžių), nes dabar tai toks jausmas, kad tu visiškai nesuvoki, kaip kas veikia, o tiesiog bandai random būdu padaryt, kad veiktų ir tiek :))

Nuoroda į pranešimą
Dalintis kituose puslapiuose

<template>
   <Icon />
</template>

 

kurioje čia vietoje jis užsetintas?

 

siūlyčiau pasiskaityti https://vuejs.org/v2...ents-props.html (o dar geriau, pradėt skaityt dokumentaciją nuo pradžių), nes dabar tai toks jausmas, kad tu visiškai nesuvoki, kaip kas veikia, o tiesiog bandai random būdu padaryt, kad veiktų ir tiek :))

 

Pasimoviau, jis niekur neužsettintas. Man esmė, kad reik staigiai čia ir dabar padaryt, kad veiktų. Aš paskui persiskaitysiu tą dokumentaciją, bet man reikia dabar. Su react'u viskas žymiai paprasčiau.

 

 

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

×
×
  • Pasirinkite naujai kuriamo turinio tipą...