vue最適化(パッケージング、コンパイル)

2308 ワード

vueパッケージとコンパイル速度については、小型プロジェクトでは明らかではないかもしれませんが、中大型プロジェクトでは、開発速度を大幅に低下させる硬傷です.今日暇を得て、私の以前の開発の過程の中で総括した経験を分かち合って、実は自分で前人のいくつかの経験を結びつけて総括したのです.
パッケージの最適化
1.config/index.js
sourceMapをマスクし、プロジェクトコードのJS/CSS/SVG(*.ico)ファイルをgzip圧縮する
build: {
    ...
    productionSourceMap: false, //   sourceMap
    productionGzip: true,//       
    productionGzipExtensions: ['js', 'css','svg'],//         
    ...

  }

圧縮機能を有効にするには、webpackのサポートが必要であることを前提に、圧縮プラグインをインストールします:npm install--save-dev compression-webpack-plugin
    1).gzipはjs、cssファイルを圧縮処理し、svg、icoファイル、bmpファイルの圧縮効果は50%に達します.
    2).画像を圧縮する問題に対して、png、jpg、jpegは圧縮効果がありません
    3).プロジェクトファイルを圧縮した後、ブラウザクライアントがgzipをサポートし、バックエンドがgzipをサポートする必要があります.
 2.ルーティングコンポーネントのリロード:
プロジェクトが大きく、ロードされたリソースが多い場合、ホワイトスクリーンが初めてロードされます.そのため、ルーティングやコンポーネントを怠惰にロードする必要があります.彼らが使用すると、すべてをロードするのではなく、ロードする必要があります.
    {
      path: "/home",
      component: resolve=>require(["@/home"],resolve)
    },

3.最適化コード:
     1).データリストレンダリング時にkey値を定義することを常に覚えて、vue内部diffアルゴリズムが正確に位置決めできるようにします.
     2).v-showとv-ifの合理的な使用は,スイッチング周波数の高いデータに対してv-show,その他のv-ifを用いて,システムのスイッチングオーバーヘッドを低減する
     3).できるだけコンポーネントを細分化し、プロジェクト開発の過程で、第1版はすべてのコンポーネントのレイアウトを1つのコンポーネントに書き、データが変更されると、コンポーネントコードが膨大であるため、vuejsのデータ駆動ビューの更新が遅く、レンダリングが遅い.比較的悪い体験効果をもたらす.したがって、コンポーネントを1つのコンポーネントのように細分化し、コンポーネント全体をマルチキャストコンポーネント、リストコンポーネント、ページングコンポーネントなどに細分化することができます.
     4).watchのデータを減らし、
コンポーネントのあるデータが変更された後に対応するstateを変更する必要がある場合は、別のコンポーネントに対してstateを変更する必要がある.watchを使用して、対応するデータ変更を傍受し、イベントをバインドできます.watchのデータが比較的小さい場合、性能消費は明らかではありません.データが大きくなると、システムにカートンが現れるので、watchのデータを減らします.他の異なるコンポーネントのstate双方向バインドは、イベント中央バスまたはvuexを用いてデータの変更操作を行うことができる.
    5).ピクチャリロード、コンテンツクラスシステムのピクチャオンデマンドロード、ピクチャロードが比較的多い場合は、v-lazyなどのリロードライブラリやマウスをバインドするscrollイベントを使用して、可視領域にスクロールしてからデータをロード表示し、システムロードのデータを減らすことができます.
    6).サービス側レンダリング(公式サイトvue ssrガイドを参照できます)
4.ユーザーエクスペリエンスの最適化
    1).keep-alive使用、ルーティングの最適化、リクエスト回数の削減
     2).better-clickはiphoneのクリック遅延を防止し、指が触れると300 msの遅延効果が現れ、better-clickによるiponeシリーズの互換性の最適化が可能
コンパイル最適化
プロジェクト開発では、コンポーネントの内容が変更され、ビューがリアルタイムでコンパイルレンダリング(ホットリロード)され、大規模なプロジェクト開発では、コンパイルに1回に数十秒以上の時間がかかる場合があり、開発効率が大幅に低下します.次に、最適化の方法をコンパイルします.