2 votes

Rendu Koa sans utiliser de moteur de template

Je pratique Node.js et décide de commencer par Vue + Koa.

Après avoir étudié Vue, je pense que je n'ai plus vraiment besoin du moteur de template. Simplement répondre le code HTML complet au front-end, et utiliser Ajax pour demander les actions, mettre à jour les vues avec Vue.

Problème:

  1. Cette idée est-elle correcte?
  2. Y a-t-il une API comme context.render('xxx.html') dans Koa? ou dois-je implémenter l'opération d'E/S pour lire le HTML moi-même.

3voto

saadq Points 8314
  1. Cela dépend, mais oui, la plupart des personnes qui utilisent une bibliothèque frontend comme Vue ou React laissent la vue côté client et utilisent simplement le backend pour les requêtes API.

  2. Vous pouvez utiliser koa-views pour obtenir la fonctionnalité ctx.render.

Exemple d'utilisation (J'ai inclus koa-router juste pour avoir un exemple complet) :

import Koa from 'koa'
import Router frmo 'koa-router'
import views from 'koa-views'

const app = new Koa()

app.use(views(path.join(__dirname, 'views'), { extension: 'pug' }))

Et ensuite dans vos gestionnaires de route, vous pouvez faire quelque chose comme :

router.get('/contacts', async ctx => {
  ctx.render('all-contacts') // Rend le fichier `all-contacts.pug`
})

Je recommande d'utiliser un serveur de développement qui charge votre fichier HTML, et d'utiliser uniquement votre serveur API pour la gestion des requêtes. Vous pouvez envisager d'utiliser vue-cli pour générer un projet vue de départ. Vous voudrez essentiellement démarrer le serveur de développement sur un port (comme 3000) et votre serveur API sur un autre port (3001). Le serveur de développement chargera automatiquement votre fichier HTML et écoutera les changements du côté client. Vous devrez simplement configurer un proxy pour envoyer toutes les requêtes API au serveur API depuis votre configuration webpack.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X