【问题标题】:Koa render without using template engineKoa 渲染不使用模板引擎
【发布时间】:2017-12-26 04:09:10
【问题描述】:

我正在练习Node.js,并决定从Vue + Koa开始。

学习了Vue,我觉得已经不需要模板引擎了。只需将整个 HTML 响应到前面,并使用 Ajax 请求操作,通过Vue 更新视图。

问题:

  1. 这个想法对吗?
  2. Koa中是否有类似context.render('xxx.html')的API? 或者必须自己实现读取HTML的IO操作。

【问题讨论】:

  • "只需将整个 HTML 响应到前面" 如果返回整个页面,为什么要使用 Vue.js?我建议您仅使用 JSON API 响应数据并将这些数据与 Vue.js 一起使用

标签: node.js vue.js koa


【解决方案1】:
  1. 这取决于,但是是的,大多数使用 Vue 或 React 等前端库的人会将视图留给客户端,只使用后端处理 API 请求。

  2. 您可以使用koa-views 来获取ctx.render 功能。

示例用法(我已经包含了 koa-router 只是为了有一个完整的示例):

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' }))

然后在您的路由处理程序中,您可以执行以下操作:

router.get('/contacts', async ctx => {
  ctx.render('all-contacts') // Renders the `all-contacts.pug` file
})

我建议使用加载 HTML 文件的开发服务器,并且只使用 API 服务器来处理请求。你可以考虑使用vue-cli 来生成一个入门 vue 项目。您基本上会希望在一个端口(如 3000)上启动开发服务器,并在另一个端口(3001)上启动您的 API 服务器。开发服务器将自动加载您的 HTML 文件并侦听客户端中的更改。您只需要设置一个 proxy 即可将所有 API 请求从您的 webpack 配置发送到 API 服务器。

【讨论】:

  • 嗨。如果您不使用pug 而是使用.js 文件怎么办?
猜你喜欢
  • 2016-08-23
  • 2013-07-09
  • 1970-01-01
  • 2013-01-10
  • 2017-09-08
  • 2018-08-02
  • 2011-12-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多