The Codest
  • Par mums
  • Pakalpojumi
    • Programmatūras izstrāde
      • Frontend izveide
      • Backend izstrāde
    • Staff Augmentation
      • Frontend izstrādātāji
      • Backend izstrādātāji
      • Datu inženieri
      • Mākoņa inženieri
      • QA inženieri
      • Citi
    • Tā Konsultatīvais dienests
      • Audits un konsultācijas
  • Nozares
    • Fintech un banku darbība
    • E-commerce
    • Adtech
    • Healthtech
    • Ražošana
    • Loģistika
    • Automobiļu nozare
    • IOT
  • Vērtība par
    • CEO
    • CTO
    • Piegādes vadītājs
  • Mūsu komanda
  • Case Studies
  • Zināt, kā
    • Blogs
    • Tikšanās
    • Tiešsaistes semināri
    • Resursi
Karjera Sazinieties ar mums
  • Par mums
  • Pakalpojumi
    • Programmatūras izstrāde
      • Frontend izveide
      • Backend izstrāde
    • Staff Augmentation
      • Frontend izstrādātāji
      • Backend izstrādātāji
      • Datu inženieri
      • Mākoņa inženieri
      • QA inženieri
      • Citi
    • Tā Konsultatīvais dienests
      • Audits un konsultācijas
  • Vērtība par
    • CEO
    • CTO
    • Piegādes vadītājs
  • Mūsu komanda
  • Case Studies
  • Zināt, kā
    • Blogs
    • Tikšanās
    • Tiešsaistes semināri
    • Resursi
Karjera Sazinieties ar mums
Atpakaļ bultiņa ATGRIEZTIES ATPAKAĻ
2020-10-30
Programmatūras izstrāde

Vue.js lietotnes uzlabojumi. Daži praktiski padomi

The Codest

Dominik Grzedzielski

Vecākais Software Engineer

Vue ir strauji augoša progresīva lietotāja saskarņu veidošanas sistēma. Tā ir kļuvusi par JavaScript ietvaru ar visvairāk zvaigznītēm GitHub vietnē un par visaugstāk novērtēto 2016. un 2017. gada projektu tajā pašā portālā.

Pieteikumu izveide programmā Vue pats par sevi ir ļoti vienkāršs, taču, ja vēlaties izveidot labas kvalitātes lietojumprogrammas, jums būs nedaudz sarežģītāk.

Būt daļai no The Codest komanda un reāls aizstāvis Vue tehnoloģija, es vēlos dalīties ar dažiem padomi (nav nokopēts no oficiālajiem Vue dokumentiem), kas bez piepūles uzlabos kods kvalitāti un Vue lietojumprogrammu veiktspēja.

Vispirms izmantojiet Vue stila rokasgrāmatu un ESLint

Es nevēlos atkārtot jau teikto. Vue dokumentos ir stila rokasgrāmata:
Vue 2 dokumenti - stila rokasgrāmata vai
Vue 3 dokumenti - stila rokasgrāmata

Tajā ir četras noteikumu kategorijas. Mums patiešām rūp trīs no tām:

  • Būtiski noteikumi, kas neļauj mums no kļūdām,
  • Ieteicamais un ļoti ieteicams labākās prakses ievērošanas noteikumi - lai uzlabot kvalitāti. un koda lasāmību.

Jūs, iespējams, domājat... "Ko?! Vai man ir jāatceras visi noteikumi?" Protams, ka nav. Jūs varat izmantot ESLint, lai par šiem noteikumiem parūpētos jūsu vietā. Jums tikai viss ir pareizi jāiestata ESLint konfigurācijas failā. Es iesaku izmantot ieteicams iepriekš iestatīts jo saņemat pilnīgi bezmaksas noteikumu kopumu, kas palīdz veidot lietotnes, izmantojot labas prakses principus. Kā to iestatīt?

Pēc noklusējuma jums vajadzētu atrast paplašina atslēgu ESLint konfigurācijā un aizstāt "spraudnis:vue/essential" ar "spraudnis:vue/recommended"tas ir viss.

Protams, jāatceras daži noteikumi, jo ESLint nevar visu apstrādāt pats par sevi. Piemēram:

  • konsekventa nosaukuma piešķiršana,
  • notikumu nosaukšana kebab-case,
  • prefiksēšana $_namespace_ privātās īpašības spraudņos, miksīnos u. c.,
  • viena faila komponenta augstākā līmeņa elementu secība.

Neizmantojiet vairākus v-if

Dažreiz var būt nepieciešams nosacīti atveidot vairāk nekā 1 elementu, bet cilvēki bieži raksta kaut ko līdzīgu:

saturs

saturs

saturs

Tas nav nepieciešams, jo mēs to varam uzrakstīt elegantāk:

<code> <template v-if="condition">
   <div>saturs</div>
   <div>saturs</div>
   <div>saturs</div>
 </template>

Bet ko darīt, ja vēlamies to veikt kā saknes elementu? Vietnē Vue, mēs nevaram izmantot šim nolūkam. Dažos gadījumos var pietikt ar iesaiņošanu divos.

Tas ir ok, bet, lai arī kā mēs to vēlētos, dažreiz mēs nevaram ietīt elementus div, piemēram, html semantikas dēļ (piem., lai arī kā mēs to vēlētos).

  • ir jābūt tiešam pēcnācējam no
      vai
        ). Tātad, kad mums ir jāraksta:

         
      1. ((( item.name ))
      2. ...un mēs redzēsim šādu kļūdu:

        Vue js kods

        Mēs varam to risināt, izmantojot izmantojot JSX un funkcionālo komponentu, arī mums vajadzētu nodot boolean un tas aizstās v-if.

        Komponentos nerakstiet api izsaukumu apstrādātājus

        Patiesībā šis ir tikai viens no piemēriem, ko nevajadzētu darīt komponentos. Vienkārši dariet to, kas ir lokāli nepieciešams komponentu loģikā. Katra metode, kas varētu būt ārēja, būtu jānodala un jāizsauc tikai komponentēs, piemēram, biznesa loģikā.

        Piemērs:

        Šādas metodes vietā:

        izveidots() (
        this.fetchArticles();
        ),
        metodes: (
         async fetchArticles() (
          try (
            const dati = await axios.get(url);
            this.articles = data.articles;
            ) catch (e) (
            // apstrādā kļūdu
            )
          )
        )

        Uzrakstiet kaut ko līdzīgu - vienkārši izsauciet atbilstošo metodi, kas atgriezīs API rezultātus:

         async fetchArticles() (
           try (
             this.articles = await ArticlesService.fetchAll();
           ) catch (e) (
             // apstrādā kļūdu
           )
          )

        Liela daudzuma rekvizītu vietā izmantojiet spēļu automātus.

        Dažreiz pietiek ar balstu izmantošanu, bet ir arī gadījumi, kad tie nav efektīvi. Tas var notikt situācijās, kad mums būtu jāpievieno pārāk daudz rekvizītu, lai komponents darbotos tā, kā mēs vēlamies. Vienkāršākais piemērs varētu būt pogas komponents. Bez šaubām, tā ir komponente, ko var izmantot jebkurā lietojumprogrammas vietā. Aplūkosim šādu pogas komponentu.

        
        ((( teksts ))

        Šajā posmā tas ir vienkāršs komponents, kas pieņem tikai teksta rekvizītu. Labi, bet ar to var nepietikt, jo mums pogā būs vajadzīgas ikonas. Šajā gadījumā mums jāpievieno vēl 2 rekvizīti (2, jo vēlamies, lai mums būtu iespēja pievienot pirms vai pēc teksta). Tātad komponents izskatīsies šādi:

        
        ((( teksts ))

        Tas nav slikti, mums ir tikai 3 balsti, bet...

        Ko darīt, ja mums ir nepieciešams iekraušanas indikators? Mums būtu jāpievieno vēl viens balsts. Un tas attiecas uz katru jaunu funkciju! Vai komponenšu skaita pieauguma ievērošana tagad šķiet izaicinoša? Jā, noteikti ir!

        Tā vietā izmantosim spēļu automātus.

        Vienkāršāk, vai ne? Labi, bet kā mēs varam iegūt ikonas pievienošanas funkciju? Tas ir ļoti vienkārši! Vienkārši izmantojiet komponentu šādi:

        Atpakaļ
        
        Nākamais

        Vienkāršs veids, kā uzlabot veiktspēju

        Es dalīšos ar jums ar dažiem padomiem, kurus ir patiešām viegli īstenot, lai jūs varētu uzreiz gūt labumu.

        Slinkās ielādes maršruti

        Dažreiz mūsu maršruti ir pieejami tikai administratoriem vai lietotājiem ar noteiktu piekļuvi, tie var būt arī mazāk apmeklēti nekā citi. Tie ir ideāli gadījumi, lai izmantotu slinko ielādes maršrutu.

        Vienkārši izmantojiet bultas funkciju savā komponenta īpašumā, lai atgrieztu importa funkciju:

         eksportēt noklusējuma jauno VueRouter (
           (
             režīms: 'history',
             routes: [
               (
                 ceļš: "/landing",
                 component: () => import('../pages/p-welcome'),
                 name: 'welcome'
               ),
          ...

        Tā vietā:

        importēt PWelcome no '@/pages/p-welcome';
        
        export default new VueRouter (
        (
        mode: 'history',
        routes: [
        (
        ceļš: "/landing",
        komponents: komponents:: PWelcome, // tikko importēts komponents
        nosaukums: "welcome
        ),

        Lēna ielāde Vue komponentu

        Līdzīga situācija var rasties ar Vue komponenti. Varam laiski importēt atsevišķus failu komponentus, piemēram, šādi:

        const lazyComponent = () => import('pathToComponent.vue')
        export default (
        components: (lazyComponent )
        )
        
        // Cita sintakse
        export default (
        components: (
        lazyComponent: () => import('pathToComponent.vue')
        )
        )

        Pateicoties šīs komponentes slinkumam, tā tiks lejupielādēta tikai pēc pieprasījuma. Piemēram, ja mums ir komponente ar v-if, tā tiks pieprasīta tikai tad, ja komponente tiks atveidota. Tātad, ja vien v-if vērtība nav true, komponents netiks ielādēts. Tāpēc slinko importēšanu var izmantot arī attiecībā uz JavaScript faili.

        Bonuss: Izmantojot Vue CLI 3+, katrs laiski ielādēts resurss pēc noklusējuma tiek iepriekš ielādēts!

        vue js attīstība

        Atribūtu rekvizītu vietā izmantojiet caurspīdīgus apvalkus

        Aplūkojiet šādu komponentu:

        Bez jebkādām problēmām mēs to varam izmantot šādi:

        vai


        Tas darbojas, jo Vue ļauj komponentei nodot html atribūtus, pat ja tie nav deklarēti kā rekvizīti. HTML atribūti tiek piemēroti komponenta saknes elementam (šajā gadījumā - ievades elementam).

        Problēma rodas, kad mēs vēlamies paplašināt mūsu ievades komponentu, jo tas varētu izskatīties šādi:

        <code> <template>
           <div class="form-group">
             <label :for="id">((( etiķete ))</label>
             <input
               :id="id"
               :value="value"
               class="base-input"
               @input="$emit('input', $event.target.value)"
             >
           </div>
         </template>

        Tagad, izmantojot komponentu šādā veidā:

        nedarbosies tā, kā mēs vēlamies, jo tips un vietne tiks piemērota div (saknes elementam), un tam nav jēgas. Tāpēc mums ar to ir jātiek galā, jo mēs vēlamies pievienot mūsu atribūtus ievades elementam. Jūsu pirmā doma var būt "pievienosim vajadzīgos rekvizītus!", un, protams, tas darbosies, bet... ko darīt, ja mēs vēlamies izmantot tips, automātiskā papildināšana, vietvārds, autofokuss, invalīdiem, ievades režīms, utt., tad mums ir jādefinē rekvizīti katram html atribūtam. Man personīgi šī garā metode nepatīk, tāpēc meklēsim kaut ko labāku!

        Mēs varam risināt visu problēmu tikai divas rindiņas.

        <template>
          <div class="form-group">
            <label :for="id">((( etiķete ))</label>
            <!-- pay attention to v-bind="$attrs" -->
            <input
              :id="id"
              v-bind="$attrs"
              :value="value"
              class="base-input"
              @input="$emit('input', $event.target.value)"
            >
          </div>
        </template>
        
        <script>
        export default (
          name: 'BaseInput',
          inheritAttrs: false, // <- pay attention to this line
          props: ['value', 'label', 'id']
        );
        </script>

        Mēs varam izmantot v-bind="$attrs" un nodot atribūtus tieši nedeklarējot milzīgas summas rekvizītiem. Atcerieties arī par opcijas pievienošanu inheritAttrs: false lai atslēgtu atribūtu nodošanu saknes elementam. Iesim nedaudz tālāk: ko darīt, ja mums ir nepieciešams pievienot notikumu klausītājus šai ievadei? Atkal, to varētu apstrādāt ar rekvizītiem vai pielāgotiem notikumiem, taču ir labāks risinājums.

        <template>
          <div class="form-group">
            <label :for="id">((( etiķete ))</label>
            <!-- pay attention to v-on="listeners" -->
            <input
              :id="id"
              v-bind="$attrs"
              :value="value"
              class="base-input"
              v-on="listeners"
            >
        </div>
        </template>
        
        <script>
        export default (
          name: 'BaseInput',
          inheritAttrs: false,
          props: ['value', 'label', 'id'],
          computed: (
            listeners() (
              return (
                ...this.$listeners,
                input: event => this.$emit('input', event.target.value)
              );
            )
          )
        );
        </script>

        Ir jauns aprēķināts īpašums, kas atgriež komponentu klausītājiem un pievieno ievades klausītāju. Mēs izmantojam šo aprēķināto ievadi, vienkārši rakstot v-on="klausītāji".

        Izmantot skatītāju ar tūlītēju opciju, nevis izveidoto āķi un skatītāju kopā.

        Mēs bieži vien iegūstam dažus datus par izveidoto (vai uzstādīto) āķi, bet pēc tam mums ir nepieciešams iegūt šos datus ar katru īpašības maiņu, piemēram, lapas lapu lapu kārtējo lapu. Daži to mēdz pierakstīt šādi:

        Protams, tas darbojas, bet... Tā nav labākā pieeja, pat ne labākā. Tātad, pārbaudīsim, kā mēs varam to pārveidot, Piemērs ne tik slikta pieeja:

        Iepriekš minētā versija ir labāka, jo nav nepieciešama cita metode, mēs tikai nosaucām metodi, kas jāizsauc, lai mainītu watchedProperty.

        Vēl labāka pieeja:

        Mēs atbrīvojāmies no izveidotā āķa. Pievienojot opciju "tūlītējs", mēs šo komponenta fetchData metodi izsaucam uzreiz pēc novērošanas sākuma (tas ir nedaudz pirms izveidotā āķa un pēc beforeCreated), tāpēc to var izmantot izveidotā āķa vietā.

        Vue.js padomu kopsavilkums

        Šie padomi nepadarīs jūsu pieteikumu nevainojamu, taču, tos izmantojot, ātri uzlabot jūsu koda kvalitāti.. Tāpat es ceru, ka jūs atradīsiet kaut ko interesantu iepriekš minētajos piemēros.

        Ņemiet vērā, ka daži no tiem tika vienkāršoti raksta vajadzībām.

        Lasīt vairāk:

        JavaScript ir pilnībā miris. Kāds puisis internetā

        Padziļināts ieskats populārākajos React āķos

        Programmatūras projekti, kuros var izmantot JavaScript

  • Saistītie raksti

    Ilustrācija viedtālruņa veselības aprūpes lietotnei ar sirds ikonu un pieaugošo veselības diagrammu, kas apzīmēta ar The Codest logotipu, kurš pārstāv digitālās veselības un HealthTech risinājumus.
    Programmatūras izstrāde

    Veselības aprūpes programmatūra: Mārketinga programmatūra: veidi, izmantošanas gadījumi

    Šodien veselības aprūpes organizāciju rīcībā esošie rīki vairs neatgādina papīra diagrammas, kas tika izmantotas pirms vairākiem gadu desmitiem. veselības aprūpes programmatūra tagad atbalsta veselības aprūpes sistēmas, pacientu aprūpi un mūsdienīgu veselības aprūpes sniegšanu klīniskajās un...

    TĀKĀDĒJAIS
    Abstrakta ilustrācija ar lejupejošu joslu diagrammu ar augošu bultiņu un zelta monētu, kas simbolizē izmaksu efektivitāti vai ietaupījumus. Augšējā kreisajā stūrī redzams The Codest logotips ar saukli "In Code We Trust" uz gaiši pelēka fona.
    Programmatūras izstrāde

    Kā paplašināt izstrādātāju komandu, nezaudējot produkta kvalitāti

    Palielināt izstrādātāju komandu? Uzziniet, kā augt, nezaudējot produkta kvalitāti. Šajā rokasgrāmatā aplūkotas pazīmes, kas liecina, ka ir pienācis laiks paplašināt komandu, komandas struktūra, pieņemšana darbā, vadība un rīki, kā arī tas, kā The Codest var...

    TĀKĀDĒJAIS
    Programmatūras izstrāde

    Uz nākotni noturīgu tīmekļa lietojumprogrammu veidošana: The Codest ekspertu komandas ieskats

    Uzziniet, kā The Codest izceļas mērogojamu, interaktīvu tīmekļa lietojumprogrammu izveidē, izmantojot modernākās tehnoloģijas un nodrošinot viengabalainu lietotāja pieredzi visās platformās. Uzziniet, kā mūsu zināšanas veicina digitālo transformāciju un biznesa...

    TĀKĀDĒJAIS
    Programmatūras izstrāde

    Top 10 Latvijā bāzēti programmatūras izstrādes uzņēmumi

    Mūsu jaunākajā rakstā uzziniet vairāk par Latvijas labākajiem programmatūras izstrādes uzņēmumiem un to inovatīvajiem risinājumiem. Uzziniet, kā šie tehnoloģiju līderi var palīdzēt uzlabot jūsu biznesu.

    thecodest
    Uzņēmumu un mērogošanas risinājumi

    Java programmatūras izstrādes pamati: A Guide to Outsourcing Successfully

    Izpētiet šo būtisko rokasgrāmatu par veiksmīgu outsourcing Java programmatūras izstrādi, lai uzlabotu efektivitāti, piekļūtu speciālajām zināšanām un sekmīgi īstenotu projektus ar The Codest.

    thecodest

    Abonējiet mūsu zināšanu bāzi un saņemiet jaunāko informāciju par IT nozares pieredzi.

      Par mums

      The Codest - starptautisks programmatūras izstrādes uzņēmums ar tehnoloģiju centriem Polijā.

      Apvienotā Karaliste - Galvenā mītne

      • 303B birojs, 182-184 High Street North E6 2JA
        Londona, Anglija

      Polija - Vietējie tehnoloģiju centri

      • Fabryczna Office Park, Aleja
        Pokoju 18, 31-564 Krakova
      • Brain Embassy, Konstruktorska
        11, 02-673 Varšava, Polija

        The Codest

      • Sākums
      • Par mums
      • Pakalpojumi
      • Case Studies
      • Zināt, kā
      • Karjera
      • Vārdnīca

        Pakalpojumi

      • Tā Konsultatīvais dienests
      • Programmatūras izstrāde
      • Backend izstrāde
      • Frontend izveide
      • Staff Augmentation
      • Backend izstrādātāji
      • Mākoņa inženieri
      • Datu inženieri
      • Citi
      • QA inženieri

        Resursi

      • Fakti un mīti par sadarbību ar ārējo programmatūras izstrādes partneri
      • No ASV uz Eiropu: Kāpēc Amerikas jaunuzņēmumi nolemj pārcelties uz Eiropu?
      • Tehnoloģiju ārzonas attīstības centru salīdzinājums: Tech Offshore Eiropa (Polija), ASEAN (Filipīnas), Eirāzija (Turcija)
      • Kādi ir galvenie CTO un CIO izaicinājumi?
      • The Codest
      • The Codest
      • The Codest
      • Privacy policy
      • Website terms of use

      Autortiesības © 2026 The Codest. Visas tiesības aizsargātas.

      lvLatvian
      en_USEnglish de_DEGerman sv_SESwedish da_DKDanish nb_NONorwegian fiFinnish fr_FRFrench pl_PLPolish arArabic it_ITItalian es_ESSpanish nl_NLDutch etEstonian elGreek pt_PTPortuguese cs_CZCzech lt_LTLithuanian lvLatvian