【taro】taro react转小程序原理

本文探讨了老版Taro的工作原理,它通过AST(抽象语法树)将代码转换为小程序代码。主要涉及四个关键步骤:1) 导入的样式文件转化为wxss;2) config方法名生成.json文件;3) render方法中的jsx转为wxml;4) 其他逻辑转为js文件。Taro将这些内容导入到小程序模板中,如Component和App,并映射生命周期方法。理解这一过程虽然不复杂,但涉及大量细节处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

  • 最近研究了老版taro的实现原理,总结一波。

原理

  • 老版的taro原理就跟我们正常想的差不多。就是通过ast转成对应的小程序代码。
  • 小程序的代码写起来是有特定套路的,所以你需要知道编译前的代码与编译后的代码啥样。
  • 在过一遍ast时,taro会去收集4个东西:
    1、import导入的样式文件最后作为wxss
    2、config方法名作为.json文件
    3、render方法中提取的jsx作为wxml文件。
    4、其他逻辑提取为js文件。
  • 一般情况,taro会把对应的包扔到npm文件夹下,然后查找在npm里面找对应的包名。
  • 小程序的通用模板一般是:
Component(require('xxxx').createComponent(Index));
  • 入口app则稍微改一下:
App(require('xxxx').createApp(_App));
  • 就是在Component中去导入通用的创造组件函数,再将收集的js逻辑导入进去,创造小程序js格式。
  • 小程序组件里有也有对应的生命周期,创建函数需要将小程序的生命周期对接编译后的方法名。比如componentDidMount对接小程序onReady,componentDidShow对接onshow等等。
  • 这种模式就是先统一编译到一个类里去,然后导入到一个生成器或者说适配器,那个生成器去提取类,最后转换成小程序代码。
  • 生成不同模式小程序只要控制require的导入的适配器即可。
  • 所以这个了解原理其实并不难,但是体力活很多。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

业火之理

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值