Avec la popularisation de l'Internet mobile et le développement rapide de la technologie du cloud computing, le framework front-end est progressivement devenu la principale force du développement WEB. En plus de fournir une structure de page pratique, des effets interactifs et un affichage de contenu dynamique, le cadre frontal présente également les avantages d'un développement rapide, d'une maintenabilité, d'une optimisation des performances, etc., ce qui améliore considérablement l'efficacité du développement et l'expérience utilisateur. En tant que framework frontal populaire, Vue.js version 3.0 a été officiellement publiée, apportant plus d'innovation et d'optimisation. Parmi eux, l'implémentation du Server Side Rendering (SSR) est une mise à jour importante dans Vue3.
1. La définition et les avantages de SSR
SSR fait référence à l'achèvement du travail de rendu de page côté serveur, au lieu d'utiliser JavaScript pour générer dynamiquement une arborescence DOM côté client, afin d'atteindre l'objectif d'amélioration rapide de la page. vitesse de rendu et optimisation des moteurs de recherche. L'architecture SPA (Single Page Application) traditionnelle utilise généralement le mode de rendu côté client pour afficher les pages via le rendu Vue.js côté client. Les avantages sont une bonne interactivité dynamique et une bonne expérience utilisateur. Cependant, étant donné que SPA ne peut afficher la page qu'une fois le téléchargement et l'analyse de JavaScript terminés, il y aura des problèmes tels qu'un chargement lent de la page et un référencement peu convivial. SSR envoie le document HTML rendu côté serveur au client, ce qui optimise non seulement la vitesse de chargement et le référencement, mais présente également les avantages d'une meilleure performance de rendu initial, d'une meilleure accessibilité et d'un meilleur partage social.
2. L'implémentation de SSR dans Vue3
Vue.js fournit une solution pour prendre en charge le rendu côté serveur dans la version 2.0 pour répondre à certains scénarios de demande particuliers. Dans Vue3, SSR a reçu un support plus complet, dont le cœur est la fonction createRenderer
. Examinons ensuite l'implémentation de SSR dans Vue3.
Vue3 fournit officiellement deux dépendances principales : @vue/server-renderer et @vue/compiler-sfc. La première est utilisée pour générer du HTML, du CSS, du script et d'autres ressources et les convertir en chaînes de retour. . Ce dernier fournit des capacités de compilation et d'analyse pour les fichiers .vue et peut convertir les fichiers .vue en fonctions de rendu.
Vue3 recommande d'utiliser la fonction de rendu au lieu du modèle de modèle. Vous pouvez définir la fonction de rendu via la fonction createRenderer. La fonction createRenderer renvoie un objet qui contient la fonction de rendu et d'autres informations associées.
const { createRenderer } = require('@vue/server-renderer'); const renderer = createRenderer(); const app = require('./app'); renderer.renderToString(app).then((html) => { console.log(html); }).catch((err) => { console.error(err); });
Parmi eux, app est une instance de Vue, qui doit d'abord être initialisée via la fonction createApp, puis montée sur l'élément DOM. Ensuite, vous pouvez utiliser la fonction de rendu pour restituer l'application.
Des outils tels que vue-router et vuex doivent être utilisés sous SSR pour prendre en charge la gestion des composants et des états correspondant aux différentes routes. Avant de faire cela, vous devez créer les composants du routeur et du conteneur.
const { createRouter } = require('vue-router'); const App = require('./App.vue'); const router = createRouter({ routes: [ { path: '/', component: App } ] });
const express = require('express'); const { createSSRApp } = require('vue'); const server = express(); const template = ` <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Vue3 SSR</title> </head> <body> <!--vue-ssr-outlet--> </body> </html> `; const { createRenderer } = require('@vue/server-renderer'); const renderer = createRenderer({ template: template }); server.use(express.static('dist')); server.get('*', async (req, res) => { const app = createSSRApp(require('./src/App.vue')); const router = require('./src/router').default; app.use(router); const html = await renderer.renderToString(app); res.send(html); }); server.listen(3000, () => { console.log('Server is running at http://localhost:3000'); });
Lors de l'écriture de code pour implémenter SSR, vous devez créer un projet express et utiliser la fonction createSSRApp pour créer une instance Vue, puis intégrer le routeur, la gestion de l'état, la fonction createRenderer, etc. .
3. Notes sur SSR
Lorsque vous utilisez SSR pour implémenter le rendu de page, vous devez faire attention aux points suivants :
En bref, le SSR est une technologie relativement nouvelle. Vous devez faire attention à la gestion de divers problèmes en termes de performances et d'utilisation. Vous pouvez faire une sélection technique et une utilisation réelle en fonction de vos propres besoins. En particulier dans les systèmes temps réel à grande échelle, une attention particulière doit être accordée à la sécurité, à la maintenabilité et aux performances du SSR.
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!