代码之家  ›  专栏  ›  技术社区  ›  JustWe

不使用模板引擎的Koa渲染

  •  2
  • JustWe  · 技术社区  · 7 年前

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

    研究后 Vue ,我认为不再需要模板引擎了。只需在前面响应整个HTML,并使用Ajax请求操作,通过 Vue .

    问题:

    1. 这个想法对吗?
    2. 是否有类似的API context.render('xxx.html') 在里面 Koa公司 ? 或者必须自己实现IO操作来读取HTML。
    1 回复  |  直到 7 年前
        1
  •  2
  •   John Reilly    6 年前
    1. 这取决于具体情况,但大多数使用Vue或React等前端库的人都会将视图留给客户端,而只使用后端进行API请求。

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

    示例用法(我包括koa路由器只是为了有一个完整的示例):

    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文件的dev服务器,并且只使用API服务器来处理请求。您可以使用 vue-cli 生成starter vue项目。您基本上希望在一个端口(如3000)上启动dev服务器,在另一个端口(3001)上启动API服务器。开发服务器将自动加载您的HTML文件,并侦听客户端中的更改。您只需设置 proxy 将所有API请求从发送到API服务器 webpack 配置。