Maison interface Web js tutoriel Introduction à l'optimisation de l'écran d'accueil de l'application monopage Vue SPA

Introduction à l'optimisation de l'écran d'accueil de l'application monopage Vue SPA

Jun 28, 2018 pm 03:43 PM
vue

Cet article présente principalement la première pratique d'optimisation d'écran de l'application monopage Vue SPA. Le contenu est assez bon, je vais le partager avec vous maintenant et le donner comme référence.

1. Compression du code (gzip)

Si vous utilisez le serveur nginx, veuillez modifier le fichier de configuration (d'autres serveurs Web sont similaires) : sudo nano /etc/nginx/nginx.conf

Ajouter les paramètres Gzip :

gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_comp_level 5;
gzip_types text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php;
Copier après la connexion
  • gzip

    • Activer ou désactiver le module gzip , ici Utilisez on pour démarrer

  • gzip_min_length

    • Définissez le nombre minimum d'octets de pages autorisés pour la compression. La valeur par défaut est 0, ce qui compresse la page quelle que soit sa taille.

  • gzip_buffers

    • Configurez le système pour obtenir plusieurs unités de cache pour stocker le flux de données du résultat de la compression gzip. 4 16 Ko signifie demander de la mémoire en unités de 16 Ko et 4 fois la taille des données d'origine en unités de 16 Ko

  • gzip_comp_level

    • Taux de compression, le taux de compression minimum de 1 est le plus rapide, et le taux de compression de 9 est le traitement le plus important mais le plus lent (la transmission est rapide mais consomme plus de CPU)

  • gzip_types

    • Faire correspondre le type MIME pour la compression, (qu'il soit spécifié ou non) le type "text/html" sera toujours compressé

Je fais cette configuration, un fichier qui doit être téléchargé sur la page d'accueil est compressé de 716 Ko à 246 Ko. Taux d'optimisation 66%.

Si vous n'activez pas gzip côté serveur, vous pouvez également activer la compression du code front-end et back-end

Si votre back-end utilise le framework Express.js pour fournir des services Web, vous pouvez ensuite utiliser un middleware de compression pour la compression gzip.

var compression = require('compression');
var express = require('express');
var app = express();
app.use(compression());
Copier après la connexion

Si votre projet front-end est généré avec vue-cli, alors la compression de code a été activée dans le fichier de configuration Webpack (environnement de production).

2. Importez des fichiers externes à la demande || Pas besoin de fichiers externes, réinventez la roue

Si vous utilisez Element dans le projet, importez à la demande :

Installez d'abord babel-plugin-component :

npm install babel-plugin-component -D
Copier après la connexion

Cela nous permet d'introduire uniquement les composants dont nous avons besoin pour réduire la taille du projet.

PS : Si une erreur est signalée à ce moment :

Erreur : erreur post-installation, veuillez supprimer node_modules avant de réessayer

C'est celui de cnpm faute. La raison est inconnue. La solution est d'utiliser npm pour installer ce module. (J'ai essayé de supprimer le fichier node_modules, mais l'erreur est restée)

Si vous utilisez une bibliothèque liée à Ajax, telle que vue-resource/axios

Supprimez-la et faites-le vous-même Implémentez une bibliothèque Ajax.

Par exemple, mon projet n'implique que get,post, donc vue-resource/axios est très inutile pour moi.

J'ai donc encapsulé une bibliothèque (prend en charge Promise, ne prend pas en charge IE) et l'utilise comme plug-in dans Vue :

/* xhr.js */
class XHR {
 get(url) {
  return new Promise((resolve, reject) => {
   const xhr = new XMLHttpRequest();
   xhr.onreadystatechange = () => {
    if (xhr.readyState === 4) {
     if (xhr.status >= 200 && (xhr.status < 300 || xhr.status === 304)) {
      if (xhr.responseText) {
       resolve(JSON.parse(xhr.responseText));
      } else {
       resolve(xhr.responseText);
      }
     } else {
      reject(`XHR unsuccessful:${xhr.status}`);
     }
    }
   };
   xhr.open(&#39;get&#39;, url, true);
   xhr.setRequestHeader(&#39;content-type&#39;, &#39;application/json&#39;);
   xhr.send(null);
  });
 }

 post(url, data) {
  return new Promise((resolve, reject) => {
   const xhr = new XMLHttpRequest();
   xhr.onreadystatechange = () => {
    if (xhr.readyState === 4) {
     if (xhr.status >= 200 && (xhr.status < 300 || xhr.status === 304)) {
      resolve(JSON.parse(xhr.responseText));
     } else {
      reject(`XHR unsuccessful:${xhr.status}`);
     }
    }
   };
   xhr.open(&#39;post&#39;, url, true);
   xhr.setRequestHeader(&#39;content-type&#39;, &#39;application/json&#39;);
   xhr.send(JSON.stringify(data));
  });
 }
}

/* Vue插件要求提供install方法:https://cn.vuejs.org/v2/guide/plugins.html */
XHR.install = (Vue) => {
 Vue.prototype.$get = new XHR().get;
 Vue.prototype.$post = new XHR().post;
};

export default XHR;
Copier après la connexion

Cette méthode peut généralement réduire la taille du fichier par dizaines de Ko. Par exemple, vue-resource fait 35 Ko et mon xhr.js ne fait que 1,9 Ko.

3. Code Splitting/Code Splitting

Comme son nom l'indique, cela signifie diviser le code en morceaux et les charger à la demande. De cette façon, s'il y a des blocs qui ne sont pas nécessaires sur le premier écran, il n'est pas nécessaire de les charger.

peut être plus utile pour les grands projets, car dans mon projet, les fichiers requis pour la page d'accueil sont fondamentalement les mêmes que ceux requis pour les autres pages, le blocage de code n'est donc pas nécessaire pour mon projet.

4. Chargement paresseux des composants de routage

Lors de l'empaquetage et de la construction d'une application, le package Javascript deviendra très volumineux, affectant le chargement des pages. Si nous pouvons diviser les composants correspondant à différentes routes en différents blocs de code, puis charger les composants correspondants lors de l'accès à la route, ce sera plus efficace

Combinez les composants asynchrones de Vue et la fonctionnalité de fractionnement de code de Webpack, vous pouvez implémentez facilement le chargement paresseux des composants de routage.

Ce que nous devons faire est de définir le composant correspondant à la route comme un composant asynchrone :

const Foo = resolve => {
 /* require.ensure 是 Webpack 的特殊语法,用来设置 code-split point
 (代码分块)*/
 require.ensure([&#39;./Foo.vue&#39;], () => {
 resolve(require(&#39;./Foo.vue&#39;))
 })
}
/* 另一种写法 */
const Foo = resolve => require([&#39;./Foo.vue&#39;], resolve);
Copier après la connexion

Il n'est pas nécessaire de modifier la configuration de routage, utilisez simplement Foo comme avant :

const router = new VueRouter({
 routes: [
 { path: &#39;/foo&#39;, component: Foo }
 ]
})
Copier après la connexion

4. Webpack2 Tree-shaking

Tree-shaking est utilisé pour éliminer le code inutilisé.

Généralement, le tree-shaking n'est pas utilisé dans les petits projets personnels. Parce que vous n'écrirez pas de code inutilisé. Des projets à grande échelle pourraient tenter de l’utiliser.

5. Réduisez les données inutiles dans XHR.

Par exemple, dans mon projet, la page d'accueil n'a besoin que du titre du blog, de l'identifiant et des balises. Le temps et le contenu ne sont plus nécessaires, et le contenu est généralement très volumineux (généralement environ 10 Ko par article).

6. SSR (Server Side Render/Server Side Rendering)

C'est un peu difficile à faire. Mais l'effet semble plutôt bon. J'ai déjà jeté un bref coup d'œil à la documentation de Vue et j'ai prévu de le faire si j'en ai besoin à l'avenir.

7. Je n'entrerai pas dans les détails sur d'autres choses telles que le chargement paresseux des images, mais c'est du bon sens que les développeurs front-end devraient avoir.

Ce qui précède représente l'intégralité du contenu de cet article. J'espère qu'il sera utile à l'étude de chacun. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois !

Recommandations associées :

Comment utiliser la transition de Vue pour terminer la transition coulissante

Utilisation de $refs dans Vue

Comment installer Mint-UI dans le projet vue

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment référencer le fichier JS avec Vue.js Comment référencer le fichier JS avec Vue.js Apr 07, 2025 pm 11:27 PM

Il existe trois façons de se référer aux fichiers JS dans Vue.js: spécifiez directement le chemin à l'aide du & lt; script & gt; étiqueter;; importation dynamique à l'aide du crochet de cycle de vie monté (); et l'importation via la bibliothèque de gestion de l'État Vuex.

Comment ajouter des fonctions aux boutons pour Vue Comment ajouter des fonctions aux boutons pour Vue Apr 08, 2025 am 08:51 AM

Vous pouvez ajouter une fonction au bouton VUE en liant le bouton dans le modèle HTML à une méthode. Définissez la logique de la fonction de méthode et d'écriture dans l'instance Vue.

Comment utiliser Watch in Vue Comment utiliser Watch in Vue Apr 07, 2025 pm 11:36 PM

L'option Watch dans Vue.js permet aux développeurs d'écouter des modifications de données spécifiques. Lorsque les données changent, regardez déclenche une fonction de rappel pour effectuer des vues de mise à jour ou d'autres tâches. Ses options de configuration incluent immédiatement, qui spécifie s'il faut exécuter un rappel immédiatement, et profond, ce qui spécifie s'il faut écouter récursivement les modifications des objets ou des tableaux.

Comment utiliser Bootstrap en Vue Comment utiliser Bootstrap en Vue Apr 07, 2025 pm 11:33 PM

L'utilisation de bootstrap dans vue.js est divisée en cinq étapes: installer bootstrap. Importer un bootstrap dans main.js. Utilisez le composant bootstrap directement dans le modèle. Facultatif: style personnalisé. Facultatif: utilisez des plug-ins.

Comment revenir à la page précédente par Vue Comment revenir à la page précédente par Vue Apr 07, 2025 pm 11:30 PM

Vue.js dispose de quatre méthodes pour revenir à la page précédente: $ router.go (-1) $ router.back () utilise & lt; router-link to = & quot; / & quot; Composant Window.History.back (), et la sélection de la méthode dépend de la scène.

Vue réalise l'effet de défilement de chapiteau / texte Vue réalise l'effet de défilement de chapiteau / texte Apr 07, 2025 pm 10:51 PM

Implémentez les effets de défilement marquee / texte dans VUE, en utilisant des animations CSS ou des bibliothèques tierces. Cet article présente comment utiliser l'animation CSS: créer du texte de défilement et envelopper du texte avec & lt; div & gt;. Définissez les animations CSS et défini: caché, largeur et animation. Définissez les images clés, Set Transforment: Translatex () au début et à la fin de l'animation. Ajustez les propriétés d'animation telles que la durée, la vitesse de défilement et la direction.

Comment interroger la version de Vue Comment interroger la version de Vue Apr 07, 2025 pm 11:24 PM

Vous pouvez interroger la version Vue en utilisant Vue Devtools pour afficher l'onglet Vue dans la console du navigateur. Utilisez NPM pour exécuter la commande "NPM List -g Vue". Recherchez l'élément VUE dans l'objet "dépendances" du fichier package.json. Pour les projets Vue CLI, exécutez la commande "Vue --version". Vérifiez les informations de la version dans le & lt; script & gt; Tag dans le fichier html qui fait référence au fichier VUE.

Comment utiliser Vue Traversal Comment utiliser Vue Traversal Apr 07, 2025 pm 11:48 PM

Il existe trois méthodes courantes pour que Vue.js traverse les tableaux et les objets: la directive V-FOR est utilisée pour traverser chaque élément et les modèles de rendu; La directive V-Bind peut être utilisée avec V-FOR pour définir dynamiquement les valeurs d'attribut pour chaque élément; et la méthode .map peut convertir les éléments du tableau en nouveaux tableaux.

See all articles