2017-05-17 10 views
0

私は、ロード時にコンテンツをプッシュサイドにプッシュする原因となるVue.jsコンポーネントをいくつか持っています。 Vue.jsはレイアウトのジャンプを防ぎます

は私がspecficallyているので、部品のように私のVueのコンポーネント用のカスタムHTMLタグを対象とするいくつかのCSSルールを作成してこれに対処するには、次の

custom-tag { 
    float: left; 
    width: 150px; 
    // etc. 
} 

この例では、CustomTag.vueのためになります。これは、Vue.jsが対応するVue.jsコンポーネントのこのカスタムタグをまだスワップアウトしていない場合に有効になります。だからこれは実際に私のレイアウトがjavascriptなしでも正しいことを確認します。

これは正常に動作しますが、これはまだ完全な解決策から遠いです。 Vue.jsがキャッシュされ、135KB(gzipped)の別のベンダーファイルに入れられても、Vue.jsが有効になるまでには時間がかかりすぎるような気がします。

Vue.jsの実際のソリューションや情報を見つけるのに苦労しているので、他の人たちがこれをどのように処理しているのか疑問に思っていますか?これはjavascriptが十分に速く読み込まれていないか、何かが私の最終的な問題ですか?

+0

[v-cloak](https://vuejs.org/v2/api/#v-cloak)の使用に興味があるかもしれません –

+0

@Roy v-cloakは、Vueの前にドキュメントから中かっこのタグを削除するために使用されますロードされました。私はそれがロードされる前にコンポーネントのためのデフォルトで持っていることについて話しています。これはまったく異なるものです。最初に隠れる構文はありません。 –

+0

v-cloak *は中カッコのタグを削除するのに使うことができますが、それを使用して、あらかじめ読み込まれたものと後で読み込まれたものを好みの方法で区別することができます。 –

答えて

0

これは非常に奇妙ですが、レンダリング前にエンジンがコンパイルする必要がある非常に長いテンプレートでは可能かもしれません。

テンプレートを最初に前もって検討してください。私はレンダリングの前にあなたのHTMLにカスタムタグを持っていれば、あなたはそれをやっていないと思います... 可能であればsingle file componentsを使用してください。もしあなたがReactから来たのであれば、jsx for Vueが役に立つかもしれませんし、手でレンダリング機能を書くこともできます。

最初のレンダリングの時間を完全に無駄にしたい場合は、唯一の方法はserver-side renderingです。だからあなたのアプリはすでにそこに初期のhtml構造で提供されます。

関連する問題