0. 技术选型与项目约定
我们将从一个 html 文件起,逐步添加 react、typescript、webpack、electron、redux、react-redux 等内容。
本项目的前端框架是基于 react 的。
1. 配置 html 文件
对任何一个前端应用,html 文件都是必要的,有些框架需要自己定义且允许覆盖(比如 next),有些框架则是内置(creacte-react-app)。
我们先配置一个基本的 html 文件,如下:
mkdir MyElectron001 && cd MyElectron001
vim index.html
在 html 文件中书写的重点是要定以一个 id 元素(本项目中我们约定为app
),用于前端(本项目中即react
)生成的html
内容的替换。
其他基本信息也可以在head
中填写,后续也可以自动替换,我们暂时先硬写title
等信息。
<!-- index.html -->
<!DOCTYPE html>
<html>
<head>
<title>MyElectron001</title>
</head>
<body>
<div id="app"></div>
</body>
</html>
这个文件理应可以直接打开并在浏览器中展现,只不过还没有什么内容,但是可以看到窗口的标题是我们制定的标题。
2. 使用 react 和 react-dom 编写网页内容
我们使用react
可以组件化的创建网页,所以安装react
,以及附带的react-dom
。
其中react
只包含一个react
应用的核心部分,包括组件实现、更新调度等。而react-dom
则是一种针对 DOM 的平台实现,主要用于在web
端渲染。
yarn add react react-dom typescript
mkdir src && cd src
vim index.js
// src/index.js
import React from "react"
import ReactDOM from "react-dom"
import App from "./app"
ReactDOM.render(
<App>,
document.getElementById("app")
)
然后再创建app.js
文件,因为它们引入了。
vim app.js
3. 使用 webpack 进行打包
react
本身只提供了一种代码书写的范式,它本身并不直接生成相应的前端文件,我们需要用到webpack
进行打包。
返回根目录后,安装webpack
相关依赖库,并初始化webpack
配置文件。
yarn add -D webpack webpack-cli @webpack-cli/generators
npx webpack-cli init # 初始化webpack配置文件
使用 typescript
初始化tsconfiig.json
配置文件。
# 自动生成 tsconfig.json
# npm install -g typescript
# tsc -v
tsc --init