乐趣区

关于java:Spring-Boot-Vue-如此强大

作者:xiangzhihong\
起源:segmentfault.com/a/1190000021376934

尽管 B/S 是目前开发的支流,然而 C/S 依然有很大的市场需求。受限于浏览器的沙盒限度,网页利用无奈满足某些场景下的应用需要,而桌面利用能够读写本地文件、调用更多系统资源,再加上 Web 开发的低成本、高效率的劣势,这种跨平台形式越来越受到开发者的青睐。

Electron 是一个基于 Chromium 和 Node.js,应用 HTML、CSS 和 JavaScript 来构建跨平台利用的跨平台开发框架,兼容 Mac、Windows 和 Linux。目前,Electron 曾经创立了包含 VScode 和 Atom 在内的大量利用。

环境搭建

创立 Electron 跨平台利用之前,须要先装置一些罕用的工具,如 Node、vue 和 Electron 等。

装置 Node

进入 Node 官网下载页 http://nodejs.cn/download/,而后下载对应的版本即可,下载时倡议下载稳固版本。如果装置 Node 应用 Homebrew 形式,倡议装置时将 npm 仓库镜像改为淘宝镜像,如下所示。

npm config set registry http://registry.npm.taobao.org/
或者
npm install -g cnpm --registry=https://registry.npm.taobao.org

装置 / 降级 vue-cli

先执行以下命令,确认下本地装置的 vue-cli 版本。

vue -V

如果没有装置或者不是最新版,能够执行以下命令装置 / 降级。

npm install @vue/cli -g

装置 Electron

应用如下命令装置 Electron 插件。

npm install -g electron
或者
cnpm install -g electron

为了验证是否装置胜利,能够应用如下的命令。

electron --version

创立运行我的项目

Electron 官网提供了一个简略的我的项目,能够执行以下命令将我的项目克隆到本地。

git clone https://github.com/electron/electron-quick-start

而后在我的项目中执行如下命令即可启动我的项目。

cd electron-quick-start
npm install
npm start

启动后我的项目的成果如下图。

除此之外,咱们能够应用 vue-cli 脚手架工具来创立我的项目。

vue init simulatedgreg/electron-vue

而后依据上面的提醒一步步选中选项即可创立我的项目,如下所示。

而后,应用 npm install 命令装置我的项目所须要的依赖包,装置实现之后,能够应用 npm run dev 或 npm run build 命令运行 electron-vue 模版应用程序,运行成果如下图所示。

Electron 源码目录

Electron 的源代码次要根据 Chromium 的拆分约定被拆成了许多局部。为了更好地了解源代码,您可能须要理解一下 Chromium 的多过程架构。

Electron 源码目录构造和含意具体如下:

Electron
├──atom - Electron 的源代码
|  ├── app - 零碎入口代码
|  ├── browser - 蕴含了主窗口、UI 和其余所有与主过程无关的货色,它会通知渲染过程如何治理页面
|  |   ├── lib - 主过程初始化代码中 JavaScript 局部的代码
|  |   ├── ui - 不同平台上 UI 局部的实现
|  |   |   ├── cocoa - Cocoa 局部的源代码
|  |   |   ├── gtk - GTK+ 局部的源代码
|  |   |   └── win - Windows GUI 局部的源代码
|  |   ├── default_app - 在没有指定 app 的状况下 Electron 启动时默认显示的页面
|  |   ├── api - 主过程 API 的实现
|  |   |   └── lib - API 实现中 Javascript 局部的代码
|  |   ├── net - 网络相干的代码
|  |   ├── mac - 与 Mac 无关的 Objective-C 代码
|  |   └── resources - 图标,平台相干的文件等
|  ├── renderer - 运行在渲染过程中的代码
|  |   ├── lib - 渲染过程初始化代码中 JavaScript 局部的代码
|  |   └── api - 渲染过程 API 的实现
|  |       └── lib - API 实现中 Javascript 局部的代码
|  └── common - 同时被主过程和渲染过程用到的代码,包含了一些用来将 node 的事件循环
|      |        整合到 Chromium 的事件循环中时用到的工具函数和代码
|      ├── lib - 同时被主过程和渲染过程应用到的 Javascript 初始化代码
|      └── api - 同时被主过程和渲染过程应用到的 API 的实现以及 Electron 内置模块的基础设施
|          └── lib - API 实现中 Javascript 局部的代码
├── chromium_src - 从 Chromium 我的项目中拷贝来的代码
├── docs - 英语版本的文档
├── docs-translations - 各种语言版本的文档翻译
├── spec - 自动化测试
├── atom.gyp - Electron 的构建规定
└── common.gypi - 为诸如 `node` 和 `breakpad` 等其余组件筹备的编译设置和构建规定 

平时开发时,须要重点关注的就是 src、package.json 和 appveyor.yml 目录。除此之外,其余须要留神的目录如下:

  • script – 用于诸如构建、打包、测试等开发用处的脚本
  • tools – 在 gyp 文件中用到的工具脚本,但与 script 目录不同,该目录中的脚本不应该被用户间接调用
  • vendor – 第三方依赖项的源代码,为了避免人们将它与 Chromium 源码中的同名目录相混同,在这里咱们不应用 third_party 作为目录名
  • node_modules – 在构建中用到的第三方 node 模块
  • out – ninja 的长期输入目录
  • dist – 由脚本 script/create-dist.py 创立的长期公布目录
  • external_binaries – 下载的不反对通过 gyp 构建的预编译第三方框架

利用工程目录

应用 electron-vue 模版创立的 Electron 工程构造如下图。

和前端工程的我的项目构造相似,Electron 我的项目的目录构造如下所示:

  • electron-vue:Electron 模版配置。
  • build:文件夹,用来寄存我的项目构建脚本。
  • config:中寄存我的项目的一些根本配置信息,最罕用的就是端口转发。
  • node_modules:这个目录寄存的是我的项目的所有依赖,即 npm install 命令下载下来的文件。
  • src:这个目录下寄存我的项目的源码,即开发者写的代码放在这里。
  • static:用来寄存动态资源。
  • index.html:则是我的项目的首页、入口页,也是整个我的项目惟一的 HTML 页面。
  • package.json:中定义了我的项目的所有依赖,包含开发时依赖和公布时依赖。

对于开发者来说,90% 的工作都是在 src 中实现,src 中的文件目录如下。

Electron 应用程序分成三个根底模块:主过程、过程间通信和渲染过程。

1、主过程

Electron 运行 package.json 的 main 脚本(background.js)的过程被称为主过程。在主过程中运行的脚本通过创立 web 页面来展现用户界面。一个 Electron 利用总是有且只有一个主过程。

2、渲染过程

因为 Electron 应用了 Chromium 来展现 Web 页面,所以 Chromium 的多过程架构也被应用到。每个 Electron 中的 Web 页面运行在它本人的渲染过程中。在一般的浏览器中,Web 页面通常在一个沙盒环境中运行,不被容许去接触原生的资源。然而 Electron 容许用户在 Node.js 的 API 反对下能够在页面中和操作系统进行一些底层交互。

3、主过程与渲染过程通信

主过程应用 BrowserWindow 实例创立页面。每个 BrowserWindow 实例都在本人的渲染过程里运行页面。当一个 BrowserWindow 实例被销毁后,相应的渲染过程也会被终止。主过程治理所有的 Web 页面和它们对应的渲染过程。每个渲染过程都是独立的,它只关怀它所运行的 Web 页面。

src 目录构造

在 Electron 目录中,src 会包蕴含 main 和 renderer 两个目录。

main 目录

main 目录会蕴含 index.js 和 index.dev.js 两个文件。

  • index.js:应用程序的主文件,electron 也从这里启动的,它也被用作 webpack 产品构建的入口文件,所有的 main 过程工作都应该从这里开始。
  • index.dev.js:此文件专门用于开发阶段,因为它会装置 electron-debug 和 vue-devtools。个别不须要批改此文件,但它能够扩大开发的需要。

渲染过程

renderer 是渲染过程目录,平时我的项目开发源码的寄存目录,蕴含 assets、components、router、store、App.vue 和 main.js。

assets:assets 下的文件如(js、css)都会在 dist 文件夹上面的我的项目目录别离合并到一个文件外面去。components:此文件用于寄存利用开发的组件,能够是自定义的组件。router:如果你理解 vue-router,那么 Electron 我的项目的路由的应用形式和 vue-router 的应用形式相似。modules:electron-vue 利用 vuex 的模块构造创立多个数据存储,并保留在 src/renderer/store/modules 中。

相干案例

https://github.com/xiaozhu188…

https://github.com/SmallRural…

近期热文举荐:

1.1,000+ 道 Java 面试题及答案整顿 (2021 最新版)

2. 别在再满屏的 if/ else 了,试试策略模式,真香!!

3. 卧槽!Java 中的 xx ≠ null 是什么新语法?

4.Spring Boot 2.5 重磅公布,光明模式太炸了!

5.《Java 开发手册(嵩山版)》最新公布,速速下载!

感觉不错,别忘了顺手点赞 + 转发哦!

退出移动版