微信小程序实现热更新 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
wuchangming89
V2EX    前端开发

微信小程序实现热更新

  •  
  •   wuchangming89
    wuchangming 2022-02-17 16:35:05 +08:00 3785 次点击
    这是一个创建于 1409 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近研究低代码时遇到个问题,微信小程序不能动态更新,变成很多方案不可越过的坎。所以有了目前的方案。

    首先,灵感来源这篇文章: https://zhuanlan.zhihu.com/p/34191831

    另外借助 Taro3 React 的动态化能力「 Remax 应该也可以,但还没用过」,其实可以进一步提升动态配置能力「 UI + 逻辑其实都可以进行热更新」。

    对于低代码平台来说 react-interpreter 带来的局部热更新应该是够用了。不过项目也是刚写完,如果要用在生产环境需要完备测试。

    项目地址: https://github.com/wuchangming/react-interpreter

    8 条回复    2022-04-01 15:46:37 +08:00
    yaphets666
        1
    yaphets666  
       2022-02-17 16:56:36 +08:00
    伪需求,需要经常更新的页面请用 web-view 。用不了 web-view 的,当你的小程序已经用户庞大到需要热更新,就可以联系微信,给你的小程序安排 vip 通道,审核通过时间是分钟级别的。
    wuchangming89
        2
    wuchangming89  
    OP
       2022-02-17 17:06:06 +08:00
    @yaphets666 ,大部分场景确实是伪需求。只是最近在做跨端项目的低代码平台,其中涉及小程序这一端,由于审核机制导致这个端不能和其他端「 Web 、RN 」同步发布,要引入别的步骤,所以有了这个想法。
    JenJieJu
        3
    JenJieJu  
       2022-02-17 17:54:00 +08:00
    性能怎么样?我测试过 eval5 性能最多只有原来的 60%
    ch2
        4
    ch2  
       2022-02-17 18:10:23 +08:00 via iPhone
    试一试
    wuchangming89
        5
    wuchangming89  
    OP
       2022-02-18 09:44:49 +08:00
    @JenJieJu 因为要先解析 ast ,性能是会差点。用的时候确实也是要分场景,特别吃性能的页面就不推荐了
    JenJieJu
        6
    JenJieJu  
       2022-02-18 10:55:40 +08:00
    除了 js 的问题,css 楼主有方案吗?小程序不支持动态引用 css 文件
    wuchangming89
        7
    wuchangming89  
    OP
       2022-02-18 11:15:30 +08:00
    em... 如果是基于 Taro 3 之类 React 的框架就 CSS in JS 吧 。不过原生 css 也是类似 js 可以先解析成 ast 后再和框架结合进行处理,但我确实没研究过,感觉开发成本比较大。
    zycode277
        8
    zycode277  
       2022-04-01 15:46:37 +08:00
    赞 最近也在做这方面的尝试
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2702 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 14:45 PVG 22:45 LAX 06:45 JFK 09:45
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86