Ho avuto esattamente la stessa domanda quando ho iniziato a lavorare sulla ricostruzione di una nuova pagina di destinazione, usando Vue. Ho attraversato diverse fasi di refactoring di tutti i codici e la regola empirica è leggibilità rispetto alla riusabilità .
Just like splitting a large code block up into several functions with descriptive names - bigblind
Fase 1: Ogni pagina come componente , come vengono utilizzati nel router. Quindi, ogni pagina è una grande porzione di codici
Fase 2: Ogni parte ripetuta come componente , poiché non voglio copiare e incollare i codici, vale a dire quello che stai facendo.
Fase 3: Ogni sezione come componente , quando ho iniziato a pensare di scrivere HMTL come funzioni di scrittura.
<div class="landingpage careers">
<section class="landingpage-hero">
<app-navbar></app-navbar>
<landingpage-header></landingpage-header>
</section>
<main class="landingpage-main">
<div class="desktop-section-row">
<punchline-section></punchline-section>
<benefits-section></benefits-section>
</div>
<personas-section></personas-section>
<values-section></values-section>
<contact></contact>
</main>
<app-footer></app-footer>
</div>
Il componente Vue finale è così, e mi sforzo di ridurre la profondità della gerarchia al suo interno.