https://github.com/tanpuer/worklet
https://github.com/tanpuer/worklet
Last synced: about 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/tanpuer/worklet
- Owner: tanpuer
- Created: 2024-02-16T02:46:28.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-02-27T15:15:37.000Z (about 1 year ago)
- Last Synced: 2025-01-24T18:34:44.185Z (4 months ago)
- Language: C
- Size: 26.5 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
Awesome Lists containing this project
README
## worklet_addon
worklet的介绍可参考react-native-reanimated和微信小程序worklet。
### 运行
1. cd node-worklet-js && npm run babel
2. cd node-worklet/nodejs && sh compile && npm install && node-gyp rebuild --debug
3. node index.js### C++
整体剥离RN代码,移植到其他具有js-ui双线程模型的UI框架中。
1. 使用nvm将nodejs版本切成v16.20.0。
2. 基于nodejs的v8环境运行,在主线程运行js,起一个子线程作为UI线程。
3. 之前已经将react-native-reanimated移植到AgilReact中,采取同样的方案,在渲染线程使用同一个v8
isolate运行部分js代码,这是实现worklet的原理。
4. 基于worklet封装一些动画/手势模块。
5. 后续剥离jsi,直接调用v8接口完成即可。### babel插件
暂时未做修改,如果需要把reanimated属性集成到xml里,则修改插件。### ts代码
整体剥离RN和React依赖。
比如useEffect钩子函数,DidMount/UnMount等声明周期里进行注册/反注册的逻辑得在实际接入ui框架的时候才能确定怎么处理。