2017-04-12 3 views
1

Je viens de commencer sur Vue est tombé sur une question sur l'architecture sur l'application multipage, que je n'ai pas été en mesure de trouver une réponse à n'importe où.Vue 2.0 sur l'application multipage

Je construis une application web basée sur umbraco cms et seulement des parties du code sur les différentes pages sont code vue. Entre les deux, il y a aussi beaucoup de la production normale de la CMS, qui n'est pas rendu par vue, par exemple:

  <div class="description"> 
      @Html.Raw(Model.Description) 
     </div> 
     <div class="specifications product-onpage-link"> 
      <a href="#description" class="first-link" onclick="event.preventDefault(); productScroll('#description')">Se varebeskrivelsen</a> <a href="#specifications" onclick="event.preventDefault(); productScroll('#specifications')">Se tekniske specifikationer</a> 
     </div> 

     @Html.Partial("~/Views/Partials/Webshop/Products/Variant.cshtml", Model) 

     @{ 
      var amountvalues = Model.StockInfo != null && Model.StockInfo.AmountValues != null ? Json.Encode(Model.StockInfo.AmountValues) : ""; 
     } 

     <div id="add-to-basket" class="variant box rounded-borders"> 
      <add-to-basket amountplaceholder="@Umbraco.GetDictionaryValue("Products: amount name")" id="@Model.ItemNo" orderminimum="@Model.StockInfo.OrderMinimum" amountvalues="@amountvalues" placeholder="@Umbraco.GetDictionaryValue("Products: Add to basket button name")" nicename="@Model.StockInfo.Stock.NiceName" delivery="@Model.StockInfo.DeliveryTime" orderinterval="@(Model.StockInfo.OrderInterval == 0 ? 1 : Model.StockInfo.OrderInterval)" /> 
     </div> 
    </div> 

Dans cette partie, il est seulement l'élément, qui est rendu par vue.

Ma question est de savoir comment structurer le code vue, quand il pourrait y avoir beaucoup d'instances de vue sur la même page avec beaucoup de cms de code rendu entre les deux.

Mon point d'entrée pour le code de vue est

import productComponent from './product-overview'; 
import BuyButton from './shared/buy-button'; 

Vue.component('buy-button', BuyButton); 

new Vue({ 
    el: '#add-to-basket' 
}); 

new Vue({ 
    el: '.buytogether' 
}); 

... 

Ici, je produis en fait beaucoup de cas Vue. Je pense, il doit y avoir un moyen plus facile à cela.

Je ne peux pas gérer tout le code vue dans une vue-app avec une relation parent/enfant entre les composants, car ils sont répartis sur la page avec beaucoup de html régulier entre les deux, ce qui est rendu par le serveur . Ma peur est que lorsque je crée plusieurs instances de vue, je perds des performances.

J'espère que vous avez de bonnes idées sur la façon de structurer le code.

Répondre

0

Je suis sûr que le meilleur moyen serait d'avoir une seule vue. Les relations peuvent être traitées par des accessoires s'ils ne sont pas trop complexes et avec vuex s'ils le sont.

Bien que vous n'ayez pas une seule application, l'état ne sera pas partagé entre les pages sauf si vous utilisez une session, un stockage local ou une base de données.