当前播放: 15 | 项目架构与基础业务:Electron 与 React 框架结合
00:00 / 00:00
高清
  • 高清
1.0x
  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.5x
网页全屏
全屏
00:00
付费课程,可试看
课程目录
第一章:Electron基础篇 (12讲)
01 | 课程介绍
免费
02 | 内容综述:学完这门课程你能得到什么?
免费
03 | Electron介绍:为什么Electron这么火?
免费
04 | 揭秘Electron架构原理:Chromium + Node.js是如何一起工作?
免费
05 | 桌面端技术选型:如何选择合适的桌面端技术?
06 | Electron开发准备:环境搭建及前期准备
07 | 第一个Electron应用:开发一个简单版的番茄钟(上)
08 | 第一个Electron应用:开发一个简单版的番茄钟(下)
09 | 与Web开发不同(一):主进程与渲染进程
10 | 与Web开发不同(二):进程间通信
11 | 与Web开发不同(三):Native能力及原生GUI
12 | 与Web开发不同(四): 释放前端想象力,基于Electron能做什么?
第二章:实战篇 - 远程控制软件 (13讲)
13 | 实战项目综述:整体需求分析
14 | 设计思路:做远程控制有几步?
15 | 项目架构与基础业务:Electron 与 React 框架结合
16 | 主页面基础业务:Real World IPC
17 | 傀儡端实现(一):基于Electron能力捕获桌面视频流
18 | 傀儡端实现(二):如何接收&响应指令?
19 | 傀儡端实现(三):基于WebRTC传输视频流(上)
20 | 傀儡端实现(四):基于WebRTC传输视频流(下)
21 | 信令服务:如何连接两端(上)
22 | 信令服务:如何连接两端(下)
23 | 指令传输实现:如何建立数据传输?
24 | 项目完善与总结(上):App特性
25 | 项目完善与总结(下):原生GUI
第三章:Electron 工程篇 (10讲)
26 | Electron 应用打包:从HTML到安装包
27 | Electron 应用更新(一):软件更新的痛点
28 | Electron 应用更新(二):线上项目如何更新?
29 | Electron 质量监控:桌面端的质量抓手是什么?
30 | 使用原生能力:如何集成C++能力?
31 | Electron 自动化测试:如何编写端到端测试?
32 | Electron体验优化:如何优化白屏问题?
33 | Electron客户端的安全:从XSS到RCE
34 | Electron bad parts:辩证看待Electron技术
35 | 结课测试&结束语
15 | 项目架构与基础业务:Electron 与 React 框架结合

15 | 项目架构与基础业务:Electron 与 React 框架结合

邓耀龙
美团高级前端工程师
全集2477
新人首单 ¥19.9 原价 ¥99
2
本节摘要

你好,我是邓耀龙。

2020 年新年即将到来,春节期间(2020 年 1 月 30 日)我们的课程将会停止更新一次,节后(2020 年 2 月 6 日)恢复更新。这里为末推荐一些自学资料,你可以自行学习。

最后预祝你新春快乐,学有所成。

课件和 Demo 地址
https://github.com/geektime-geekbang/geektime-electron

展开
登录 后留言

精选留言(14)

  • Geek_205af5
    react项目启动可以在浏览器访问 http://localhost:3000,但是在Electron窗口却没有加载,不知道是为什么, win.loadURL('http://localhost:3000');

    作者回复: 确认一下loadURL这句执行了没有。另外可以把控制台打开,看看有没有加载地址?

    2020-03-22
    1
    1
  • 瑞泉
    老师,按要求设置 BROWSER=none react-scripts start,启动后报错:
    'BROWSER' is not recognized as an internal or external command,
    operable program or batch file.
    npm ERR! code ELIFECYCLE
    npm ERR! errno 1
    npm ERR! main@0.1.0 start: `BROWSER=none react-scripts start`
    npm ERR! Exit status 1
    npm ERR!
    npm ERR! Failed at the main@0.1.0 start script.
    npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
    npm ERR! A complete log of this run can be found in:
    npm ERR! C:\Users\Gree\AppData\Roaming\npm-cache\_logs\2020-01-27T12_21_05_394Z-debug.log
    npm ERR! code ELIFECYCLE
    npm ERR! errno 1
    npm ERR! remote-control@1.0.0 start:render: `cd app/renderer/src/main && npm start`
    npm ERR! Exit status 1
    npm ERR!
    npm ERR! Failed at the remote-control@1.0.0 start:render script.
    npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
    npm WARN Local package.json exists, but node_modules missing, did you mean to install?

    npm ERR! A complete log of this run can be found in:
    npm ERR! C:\Users\Gree\AppData\Roaming\npm-cache\_logs\2020-01-27T12_21_05_536Z-debug.log
    在网上搜不到解决方法,望老师支招……

    作者回复: win上的话应该是环境变量不能这么设,你装一个cross-env,之后在BROWSER前面加上cross-env

    2020-01-27
    1
    1
  • yandex.s
    老师我想知道你 vim应用 插件以及心得

    作者回复: 我录制时候没有装插件,根据个人喜好和编程语言做补充经典的就好。最重要的应该是快捷键的使用。

    2020-07-06
  • 小铁匠
    使用 vue 的话怎么解决 fs.existssync is not a function 的问题

    作者回复: existssync大小写写对了吗?应该是existsSync

    2020-06-06
  • wd2010
    老师好,根据你的教程,自己写的electron结合react时,当使用config-overrides时显示require is not defined, 当使用react-scripts时又显示window.require is not a function. 从网上看了指导好像也不行 https://github.com/timarney/react-app-rewired/issues/431#issuecomment-563133191 。请问下这是什么原因呢?

    windows10
    electron v9.0.9
    node v12.10.0
    npm 6.10.3

    作者回复: 应该是你的browserWindow的webPreferences的nodeIntergration没打开。加载本地页可以开,但是远端就别开了。

    2020-06-01
  • 冬瓜家的西瓜
    老师好,我这里一直提示
    NODE_MODULE_VERSION不配置的问题, 最后通过下面的方式解决的, 希望能帮到其他同学
    https://www.jianshu.com/p/c219fbd35df7


    npm i --save-dev electron-rebuild
    npm uninstall deasync
    npm i deasync
    ./node_modules/.bin/electron-rebuild

    作者回复: 👍

    2020-03-28
  • jjc
    老师 electron程序停止了,但是React程序没有停止,这个有办法避免吗?调试的时候,每次都要control+c 才能退出
    2020-03-23
  • 我欢就好♀
    老师, 按教程填写:
    const { override } = require('customize-cra');
    function addRendererTarget(config) {
        config.target = 'electron-renderer'
        return config
    }
    module.exports = override(addRendererTarget)

    启动后页面报错:Uncaught ReferenceError: require is not defined;

    假设注释掉最后一行(module.exports = override(addRendererTarget))就不会出现这个错误了
    目前没有找到解决方法, 求解

    作者回复: 可以对比我们github源码看看。
    https://github.com/dengyaolong/geektime-electron/blob/master/Chapter%203/remote-control/app/renderer/src/main/config-overrides.js

    记得确认一下package.json改过来没有https://github.com/dengyaolong/geektime-electron/blob/master/Chapter%203/remote-control/app/renderer/src/main/package.json#L15

    2020-03-10
    3
  • Geek_a5ab21
    老师,我在项目中使用webview加载页面,无法在子页面默认设置焦点。这个问题如何解决

    作者回复: webview坑不少,可以考虑browserview。另设置焦点的话是指window.focus不好用吗?

    2020-03-03
  • 马小🐎
    这个window.require是干什么用的老师

    作者回复: 跟require一样的,用来引模块,但windows.require不会被webpack识别,可以避免require引入electron报错。

    2020-02-21
    1
  • 梦牵绕了谁的灵魂
    老师,我用npx创建不了react项目?这个怎么搞?

    作者回复: 看看你的node,npm版本是不是有点低了,我用的是12.14,nvm install 12.14,nvm use 12.14试试

    2020-02-05
    1
  • 🌀Pick Monster 🌀
    老师,发现使用npm start启动render和electron之后,关闭electron窗口后electron程序停止了,但是React程序没有停止,如果项目打包后会不会出现React程序一直没有被停止的情况?

    作者回复: 打包后当然不会,打完包就是一个静态页。第三章会讲到

    2020-02-05
    1
  • Geek_0a41b1
    react集成的那一节有点复杂

    作者回复: 其实如果不篡改,直接用window.require还是比较简单的。实际项目中几乎都是按项目需求配置的。

    2020-02-03
  • 暴怒侠(有牙齿的IT妞)
    http://t.cn/A6vJWcdN does not work here. it redirect to a 404 page

    作者回复: 更新链接了

    2020-01-30
收起评论
看过的人还看
Node.js开发实战

杨浩  腾讯高级工程师

57讲 | 5861 人已学习

新人首单 ¥29.9 原价 ¥129
重学前端

程劭非(winter)  前手机淘宝前端负责人

58讲 | 36422 人已学习

新人首单 ¥19.9 原价 ¥99
TypeScript开发实战

梁宵  搜狗营销事业部高级架构师

47讲 | 4291 人已学习

新人首单 ¥29.9 原价 ¥129
JavaScript核心原理解析

周爱民  《JavaScript语言精髓与编程实践》作者,南潮科技(Ruff)首席架构师

28讲 | 5112 人已学习

新人首单 ¥9.9 原价 ¥68