V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
aapeli
V2EX  ›  Node.js

一个关于 Electron + React 的问题咨询

  •  
  •   aapeli · 2023-07-25 09:57:26 +08:00 · 2068 次点击
    这是一个创建于 485 天前的主题,其中的信息可能已经有所发展或是发生改变。
    Electron + React 渲染进程和主进程如何使用 redux 共享状态? 有没有啥方案或者包推荐的?
    13 条回复    2023-07-25 12:26:11 +08:00
    lsk569937453
        1
    lsk569937453  
       2023-07-25 10:06:23 +08:00
    后端小白问下:

    react 都有 hooks 了还需要用 redux 做什么用?

    因为有一次我问我的前端同学用什么做状态管理,他说用 react hooks 就够了。。。。
    zhuangpipi
        2
    zhuangpipi  
       2023-07-25 10:08:24 +08:00
    很短暂的用过一段时间,考虑一下状态放主进程,然后自己封装一下和主进程通讯的方法用?
    leuction
        3
    leuction  
       2023-07-25 10:11:35 +08:00   ❤️ 1
    @lsk569937453 没有什么用,现在用 redux 主要还是历史遗留问题,除非你的状态过于复杂或者需要回放等功能,其他情况下根本不需要 redux
    jchnxu
        4
    jchnxu  
       2023-07-25 10:21:26 +08:00
    监听主进程的里面的状态对象,感觉是可行的
    xianyu191031
        5
    xianyu191031  
       2023-07-25 10:28:56 +08:00
    把渲染进程同步主进程状态的行为理解成跟 web 开发中的异步后端调用就好了
    yuyue001
        6
    yuyue001  
       2023-07-25 10:30:37 +08:00
    印象中,这两个线程是独立的。不能直接共享数据。
    但是 electron 提供了通信方式。你看看这个
    进程间通信 https://www.electronjs.org/zh/docs/latest/tutorial/ipc
    ljtfdt
        7
    ljtfdt  
       2023-07-25 10:32:46 +08:00
    主进程和渲染进程是隔离的,主进程是 node 环境,渲染进程是 web ,共享状态还是要靠进程间通讯来实现
    leohxj
        8
    leohxj  
       2023-07-25 10:43:44 +08:00
    otakustay
        9
    otakustay  
       2023-07-25 11:10:13 +08:00
    你把主进程理解成后端,Electron 内部还是个前后端分离的系统,自然没有共享状态这事了,只是通信相比 HTTP 快很多
    ChefIsAwesome
        10
    ChefIsAwesome  
       2023-07-25 11:18:46 +08:00
    你就当做普通 web 开发,前后端分离,ipc 通讯就是调 api 。不要想着在一端就能搞定所有的。
    lokitangl
        11
    lokitangl  
       2023-07-25 11:20:21 +08:00
    我们之前的项目,直接搞了个 middleware ,每次 action 把 redux 状态通过 IPC 传到主进程里
    这么干其实没必要,浪费资源
    实际上只需要把需要用到的数据传到主进程就可以了
    RealJacob
        12
    RealJacob  
       2023-07-25 12:03:00 +08:00
    @lsk569937453 复杂状态管理个人认为还是 redux 更方便,尤其是一些基于 redux 封装的包。(可能也是遗留的使用习惯问题)。但是确实 context 和 reducer 可以解决大部分状态管理的问题
    owen800q
        13
    owen800q  
       2023-07-25 12:26:11 +08:00
    eletronAPI
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3377 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 10:57 · PVG 18:57 · LAX 02:57 · JFK 05:57
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.