用途:在微信小程序 Skyline 渲染模式下开发高性能交互动画,让动画逻辑直接运行在 UI 线程,减少双线程通信带来的延迟,适用于手势跟随、拖拽、弹簧回弹等场景。
主要能力:worklet 函数(顶部声明 'worklet' 指令,可运行于 JS 或 UI 线程);共享变量(shared()/derived(),通过 .value 读写);动画驱动(applyAnimatedStyle() 将 SharedValue 绑定到节点样式);动画类型 timing/spring/decay;Easing 缓动函数;组合动画 sequence/repeat/delay;线程通信 runOnUI/runOnJS。
使用方式:创建共享变量 const offset = shared(0);用 this.applyAnimatedStyle('#box', () => { 'worklet'; return { transform: translateX(${offset.value}px) } }) 绑定样式;通过 offset.value = timing(300, { duration: 200 }) 驱动动画。
限制:Worklet 动画仅在 Skyline 渲染模式可用,需在 app.json 配置 "renderer": "skyline",并在开发者工具勾选「将 JS 编译成 ES5」。worklet 函数必须声明 'worklet';SharedValue 必须通过 .value 读写;访问非 worklet 函数必须用 runOnJS;页面方法需 this.methodName.bind(this);不可在 worklet 中直接调用 wx API;不可解构 this.data(会冻结数据导致 setData 失效)。
文档索引与相关技能:参考 core/worklet-overview、base/shared-derived、animation/timing-spring-decay 等文件;相关技能包括 skyline-components、skyline-overview、skyline-wxss、skyline-route。其他细节暂未提供。