小程序动画

动画的技术选型:实现简单 可控

CSS 实现起来比较复杂

JS js和元素沟通成本比较高 协议 性能不是很好

GIF 不可控 循环或者暂停可能做不到

VIDEO 搞成mp4格式 视频的格式 控制播放或者暂停

WEBP 网页可控 在微信小程序不可控

LOTTIE 在微信小程序比较可控

SVG 只支持在image标签渲染出来

Lottie:找个动画资源 json文件

设计师在软件里面把动画做好,ae软件里面导出来再引入进来

在taro里面封装Lottie

Lottie只支持支付宝小程序不支持微信小程序

现在的目标是封装完一份可以在微信小程序中使用的Lottie组件

封装成基础库的坑点:

1.怎么获取到这个节点 要支持ref属性

react里面有个hook useimperativehandle可以把ref传出去 通过forwardref 把ref抛出去

2.到底传什么动画资源进来 要不要循环 要不要暂停

3.经常拿不到node,传的id不能是运算出来的id,就可以正常拿到节点,如果是运算出来的id,就可能拿不到

4.找json资源,有的图片资源包含了一些代码

iconfont矢量图标库

eval()可以执行一些字符串脚本

小程序禁用eval()(估计是出于性能考虑)

5.在react机制中,需要使在合适的时机重新执行它,因为第一次取到的初始值是空,

真实的引用:lottie.loadAnimation 把整个引用传出去

json资源很小的

nanoid小的工具库用来生成唯一的id 有个api在小程序里面用不了

uuid 也可以生成唯一的id 算的太复杂了 导致node有的拿不到有的时候可以获取到

把id从外部传进来,内部不用管id的事 可以很稳定的获取到节点

useload页面初次渲染完成的回调

useready 页面加载完成时的回调

useeffect组件级别

不能用小程序生命周期,只能用useeffect组件级的生命周期方法

只要有组件级别的销毁的话就用useeffect

因为生命周期执行完就没了

总结:组件不能用小程序的生命周期

ts的小细节:类型自动推导


核心理念:学会使用类型自动推导 返回值的类型确定

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容