显示导航

使用 Vue.js Grails 概要

本指南介绍 Grails 的 Vue.js 概要。

作者:Zachary Klein

Grails 版本 4.0.1

1 培训

Grails 培训 - 由创建并积极维护 Grails 框架的人员开发并授课!

2 入门

在本指南中,您将使用 Grails 的 Vue 概要 创建应用程序。此概要将生成一个多项目构建,其中包括一个 Grails 应用程序和一个 Vue.js 前端应用程序,该应用程序可访问 Grails 提供的 RESTful API。

此概要将生成两个应用程序,serverclientserver 将是一个使用 rest-api 概要构建的 Grails 3 应用程序,该概要包括用于创建域资源、restful 控制器和 JSON 视图的支持。

client 是使用 Vue-CLI(使用 webpack 模板)生成的独立 Vue.js 应用程序。client 应用程序包括一个使用 Vue-RouterUIV(Bootstrap)库实现的完整 UI,并且配置为通过 REST 与 Grails 后端通信。client 项目还包括一个正常运行的测试套件(单元和 e2e 测试)以及用于构建和测试应用程序的脚本 - 请参阅 vue-cli 模板文档 以获取更多信息。

2.1 您将需要

要完成本指南,您将需要以下内容

  • 10 分钟或更短的时间

  • 已安装 Grails 4.0.1 或更高版本

  • 已安装 JDK 1.8 或更高版本,并已适当地配置了 JAVA_HOME

3 生成应用程序

要开始使用此概要,请在生成应用程序时指定该概要

$ grails create-app myApp --profile=vue

您还可以使用 Application Forge 来生成您的项目,可以使用 web 界面或使用以下 curl 命令

curl -O start.grails.org/myApp.zip -d version=4.0.1 -d profile=vue

查看目录结构 - 您将看到典型的 Gradle 多项目构建,带有时序客户端和服务器项目。

drwxr-xr-x  9 zak  staff   306 Nov  1 13:15 client
drwxr-xr-x  3 zak  staff   102 Nov  1 13:10 gradle
-rwxr--r--  1 zak  staff  4971 Nov  1 13:10 gradlew
-rwxr--r--  1 zak  staff  2314 Nov  1 13:10 gradlew.bat
drwxr-xr-x  8 zak  staff   272 Nov  1 13:12 server
-rw-r--r--  1 zak  staff    26 Nov  1 13:10 settings.gradle

server 项目是我们的 Grails 应用。此配置文件将使用 rest-api 配置文件生成一个 Grails 应用程序,该文件提供支持,将域类作为 restful 资源来创建、CORS 默认启用,以及 JSON 和标记视图。

client 是我们的 Vue 应用程序。

-rw-r--r--   1 zak  staff  44412 Nov  1 13:10 README.md
-rw-r--r--   1 zak  staff    669 Nov  1 13:10 build.gradle
-rw-r--r--   1 zak  staff    404 Nov  1 13:10 package.json
drwxr-xr-x   4 zak  staff    136 Nov  1 13:10 public
drwxr-xr-x  10 zak  staff    340 Nov  1 13:10 src

client 项目结构(除了与配置文件 相关的 build.gradle)是全部归功于 Vue-CLI 的 webpack,并包含一个非常好的 README 文件。简而言之,src/ 目录是放置 Vue 来源代码的目录,有 /components/assetsconfig 子目录。

static 目录是公共资源的目录,从您的 Vue 应用程序中想要使其可用而无需 webpack 捆绑。还有一个根目录 index.html 文件,用于生成 Vue 应用程序的主页。同样,请参阅 Vue-CLI 模板文档 了解更多详情。

如果您编辑文件 config/dev.env.js,您会看到此配置文件已向模板默认值添加了额外的配置属性

'use strict'
const merge = require('webpack-merge')
const prodEnv = require('./prod.env')

module.exports = merge(prodEnv, {
  NODE_ENV: '"development"',
  SERVER_URL: '"http://localhost:8080"' (1)
})
1 SERVER_URL 指向 server Grails 应用程序的默认地址,并用作 Vue 应用程序中 REST 调用的基本 URL。

您可以更改当前的配置属性,或向此文件中添加新的配置属性;它们将应用于“开发”环境(注意 client 环境基于 client/package.json 中的脚本,并且与 Grails 环境无关)。

4 运行应用程序

此配置文件还定义了一组自定义 Gradle 任务,包括一个 bootRun 任务,用于启动客户端应用程序。您可以单独启动服务器和客户端应用程序

./gradlew server:bootRun

这将启动 Grails 应用程序,您可以在 http://localhost:8080 找到此应用程序。

在另一个终端
./gradlew client:start

这将启动 Vue 应用程序的 dev 服务器,您可以在 http://localhost:3000 找到此应用程序。

客户端 build.gradle 文件还包括一个 bootRun(为了与 server 项目一致),这意味着您可以利用 Grails 的并行执行,使用一个命令同时运行客户端和服务器应用程序

./gradlew bootRun -parallel

还有几个 client 任务,用于“包装”package.json 中的 npm 脚本,以构建和测试 Vue 应用程序。您可以使用 Gradle 包装程序运行这些脚本,或者,如果您已安装 npm,可以直接运行这些脚本。

$ ./gradlew client:test
$ ./gradlew client:build
来自客户端目录
$ npm test
$ npm run build

同样,请参阅 模板文档 了解有关利用这些脚本和 Vue-CLI 提供的其他功能的更多信息。

别忘了查看 Grails Vue Profile 文档以了解更多内容。

5 帮助使用 Grails

Object Computing, Inc. (OCI) 赞助了本指南的创建。提供多种咨询和支持服务。

OCI 是 Grails 的所在地

认识团队