2017-04-12 10 views
1

방금 ​​전에 Vue에서 다중 페이지 응용 프로그램의 아키텍처에 관한 질문을 접했습니다. 어디서나 답변을 찾을 수 없었습니다.다중 페이지 응용 프로그램의 Vue 2.0

나는 umbra cms를 기반으로 웹 응용 프로그램을 만들고 있으며 다양한 페이지의 코드 부분 만이 vue 코드입니다.

  <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> 

즉 VUE 통해 렌더링되는, 그것은 단지 요소의이 부분에서 : 사이에서 VUE 예를 통해 렌더링되지 않은 정상 CMS 출력 많이도있다.

제 질문은 vue 코드를 구성하는 방법입니다. 많은 vue 인스턴스가 같은 페이지에 있고 그 사이에 많은 정규 cms 렌더링 코드가있을 수 있습니다. VUE 코드에 대한

내 진입 점은 여기

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' 
}); 

... 

실제로 VUE 경우가 많이 발생합니다. 나는 이것에 더 쉬운 방법이 있어야한다고 생각하고있다.

구성 요소 사이에 부모/자식 관계가있는 하나의 vue-app에서 모든 vue 코드를 처리 할 수 ​​없습니다. 그 이유는 구성 요소 사이에 정규 HTML이 많은 페이지 주위로 퍼져 있기 때문입니다 .

여러 개의 vue 인스턴스를 만들면 성능이 느려질 것이라는 두려움이 있습니다.

당신은 코드를 구조화하는 데 좋은 아이디어가 있기를 바랍니다.

답변

0

나는 단일 방법을 사용하는 것이 가장 좋은 방법이라고 확신한다. 관계가 너무 복잡하지 않다면 소품을 통해 처리 할 수 ​​있고 vuex가있는 경우 관계를 처리 할 수 ​​있습니다.

단일 페이지 앱이 없기 때문에 세션, 로컬 저장소 또는 데이터베이스를 사용하지 않으면 상태가 페이지간에 공유되지 않습니다.