Vue プロジェクトの包括的な最適化戦略

php中世界最好的语言
リリース: 2018-05-23 15:03:58
オリジナル
1694 人が閲覧しました

今回は、Vue プロジェクトの包括的な最適化戦略について説明します。以下は、Vue プロジェクトの包括的な最適化に関する 注意事項 について説明します。

画像最適化

1. 画像サイズの最適化、一部の画像は WebP を使用します (WebP の互換性を考慮する必要があります)

  1. Zhitu、Youpaiyun などのオンライン生成

  2. gulp 生成、gulp-webpまたは gulp-imageisux

  3. キャンバス生成

2. 画像リクエストを減らし、スプライト グラフィックス

  1. を使用してオンラインで生成します: スプライト ジェネレーター、Tencent の gopng、spriteme

  2. コード生成: gulp.spritesmith または Compass Sass の

ページ パフォーマンスの最適化

画像またはコンポーネントの遅延読み込み

vue-lazyload コンポーネントまたはその他のコンポーネントを使用する

vue-lazyload アドレス: https://www.npmjs.com /package/vue-lazyload

画像の遅延読み込み: v-lazy または画像グループを含めるには v-lazy-container を使用します

// 引入一张图片 
<img v-lazy="//domain.com/img1.jpg"> 
// 引入一组图片
<p v-lazy-container="{ selector: &#39;img&#39;, error: &#39;xxx.jpg&#39;, loading: &#39;xxx.jpg&#39; }">
 <img src="//domain.com/img1.jpg">
 <img src="//domain.com/img2.jpg">
 <img src="//domain.com/img3.jpg"> 
</p>
ログイン後にコピー

コンポーネントの遅延読み込み

Vue.use(VueLazyload, {
 lazyComponent: true
});
<lazy-component>
 <img class="mini-cover" :src="img.src" width="100%" height="400">
</lazy-component>
ログイン後にコピー

画像の事前読み込み

画像を素早く表示します

使用シナリオ:画像を表示するコンポーネントで、次のページの画像を頻繁にめくると、サーバーからデータを取得して画像を表示すると、画像の読み込みが遅くなります。この場合、新しいデータを表示する前に画像を事前に読み込むことができます。つまり、対応する位置に画像を埋め込みます

スリーパーティプラグインの遅延読み込み (オンデマンド読み込み)

js ファイルは通常同期的に読み込まれ、ページに配置するとメインの js の読み込みがブロックされますファイル。

使用シナリオ: 一部のプロジェクトで jquery などのファイルを導入する必要がある場合、これらのファイルをコンポーネント内に導入すると、ページのレンダリングがある程度ブロックされるため、特定の イベント (クリックまたはポップ) を介した jquery などの JS ファイルの動的読み込みが行われます。アップウィンドウ)ホームページを作成することができます。 ページが素早く表示されます。

ページの非同期ロード、コンポーネントの重なりを防ぐ方法

複数の vue コンポーネントがロードされ、コンポーネントがサーバー側データを通じて同時にレンダリングされる場合、複数のコンポーネントは最初に重なり、その後分離されます

3 つの解決策

  • ページに表示されるセクションが固定されており、コンテンツの高さを変更するのが難しい場合、事前にコンポーネントの外側に固定の高さを設定しておくと、フレーム内にコンテンツを追加するように表示されます。ページコンテンツが固定されていない場合、非同期読み込み時にコンポーネントが重なる問題を軽減するために、特定のコンポーネントのデータが読み込まれたときに最初の画面に他のコンポーネントが表示され、v-show を通じて表示されるように設定できます。

  • ページ全体が固定されたら、ページにスケルトンを追加して、ページのちらつきを防ぐことができます。具体的な実装については、http://www.jb51.net/article/130505.htm

  • サーバー側レンダリングのページを参照してください。データが固定され、変更がほとんどない一部のページについては、サーバー側レンダリングを検討できます。これは短時間で完了し、ユーザー エクスペリエンスが向上します。

インポートされた外部ファイルのサイズを削減します

プロジェクトでいくつかの ElementUI コンテンツが導入される場合、一部のコンポーネントを導入できるように、babel-plugin-component を導入して .babelrc ファイルを構成し、それによってファイルのサイズを削減します。コンポーネント。

ルートの遅延読み込み

しかし、vue-router を使用する場合、webpack はすべてのコンポーネントを js ファイルにパッケージ化するため、ファイルが非常に大きくなり、ホームページの読み込みに影響します。他のルートは別のjsファイルにパッケージ化されており、ルート切り替え時に対応するjsファイルが読み込まれます。

resolve => require([URL], resolve), 支持性好
() => system.import(URL) , webpack2官网上已经声明将逐渐废除, 不推荐使用
() => import(URL), webpack2官网推荐使用, 属于es7范畴, 需要配合babel的syntax-dynamic-import插件使用
ログイン後にコピー

この記事の事例を読んだ後は、この方法を習得したと思います。さらに興味深い情報については、php 中国語 Web サイトの他の関連記事に注目してください。

推奨読書:

vue を使用してコンポーネントを登録する方法

Vue の 3 層ネストされたルーティングの使用方法

以上がVue プロジェクトの包括的な最適化戦略の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート