2017-04-12 16 views
1

私はVueを始めたばかりで、マルチページアプリケーションのアーキテクチャに関する質問に遭遇しました。私はどこにでも答えを見つけることができませんでした。マルチページアプリケーションのVue 2.0

私はumbra cmsに基づいてWebアプリケーションを構築しており、さまざまなページのコードの一部だけが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インスタンスが同じページにあり、その間に多数のレギュラーCMSレンダリングされたコードがある場合、どのようにvueコードを構成するかです。 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のインスタンスの多くを生成しています。私は考えている、これに簡単な方法が必要です。

コンポーネント間に親子関係がある1つのvue-app内のすべてのvueコードを扱うことはできません。その理由は、それらがサーバーのレンダリングされる多数の通常のhtmlでページに広がっているからです。

私が恐れているのは、複数のvueインスタンスを作成するとパフォーマンスが低下するということです。

あなたはコードをどのように構造化するか、いくつかの良いアイデアがあるといいですね。

答えて

0

私は、単一のvue intanceを持つのが最善の方法だろうと確信しています。関係は、あまりにも複雑でない場合は小道具を介して処理することができ、存在する場合は、vuexを使用して処理することができます。

1つのページアプリがないため、セッション、ローカルストレージ、またはデータベースを使用しない限り、ページ間で状態は共有されません。

関連する問題