Nuxt 作为通用 SSR 应用
多年前,我们使用 ASP、Java、服务器端 JavaScript、PHP 和 Python 等服务器端脚本语言,通过模板引擎来创建传统服务器端应用程序以渲染应用程序的视图。这导致了我们在上一节中讨论的紧密耦合的缺点。
因此,随着 Nuxt、Next (https://nextjs.org/) 和 Angular Universal (https://angular.io/guide/universal) 等通用 SSR 框架的兴起,我们可以充分利用它们的功能,通过替换模板引擎(如 Pug (https://pugjs.org/)、Handlebars (https://handlebarsjs.com/)、Twig (https://twig.symfony.com/) 等我们一直深度依赖的工具),彻底将视图与服务器端脚本应用程序分离。如果我们将 Nuxt 视为前端服务器端应用程序,将 Express(或其他)视为后端服务器端应用程序,我们可以看到它们如何完美地互补。例如,我们可以使用 Express 创建一个后端服务器端应用程序,在 localhost:4000 的 API 路由(例如,/)上以 JSON 格式提供数据:
{
"message": "Hello World"
}
然后,在前端服务器端,我们可以使用运行在 localhost:3000 上的 Nuxt 作为通用 SSR 应用程序,通过从我们的 Nuxt 应用程序的页面发送 HTTP 请求来使用上述数据,如下所示:
// pages/index.vue
async asyncData ({ $http }) {
const { message } = await $http.$get('http://127.0.0.1:4000')
return { message }
}
现在,Nuxt 既是处理我们应用程序视图和模板的服务器,又是客户端,而 Express 仅处理我们的服务器端逻辑。我们不再需要模板引擎来呈现我们的内容。因此,也许这一次我们不需要学习如此多的模板引擎,也不需要担心它们之间的竞争,因为我们现在拥有通用的解决方案——Nuxt。
我们将在第十二章 “创建用户登录和 API 认证” 中向你展示如何使用 Nuxt 和 Koa(另一个类似于 Express 的 Node.js 服务器端框架)创建跨域应用程序。
|
请注意,在前面的代码中,我们使用了 你还可以使用 |