Koa渲染而不使用模板引擎

时间:2017-12-26 04:09:10

标签: node.js vue.js koa

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

经过研究Vue,我认为不再需要模板引擎了。只需将整个HTML响应到前端,并使用Ajax请求操作,通过Vue更新视图。

问题:

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

1 个答案:

答案 0 :(得分:3)

  1. 这取决于,但是大多数使用像Vue或React这样的前端库的人会将视图留给客户端,只需使用后端来获取API请求。

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

  3. 示例用法(我已经包含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
    })
    

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