单线程,所有任务都是直线执行的,前一个任务结束后会执行最后一个任务。如果前一个任务没完没了或执行时间很长,后一个任务就必须等到前一个任务完成。
为什么看到settimeout一般会觉得多线程?那个因为线程上的执行速度很快,所以看起来那些"延迟的任务"会被立即处决。
执行方法a(设置定时器,插入队列)-funb-func-fund;
当基金执行完毕,此时将启动定时器。
javascript计时器
计时器类型:s:
setinterval(代码,交互时间)
参数描述:
可以将传递给cl
我对这个问题很感兴趣,所以不请自来,因为我用react两年了,遇到了一些动画开发,所以我就说说我自己的经历。
首先,react最大的优势是提高了操作dom的性能。它通过一系列的diff算法最大限度地减少了对dom的操作次数。本质上是框架代替开发者操作dom,开发者通过状态和道具传递指令。当然开发者也可以直接操作dom,不推荐!
其次,对于开发动画,我们有以下几种方法:
1.通过css3开发动画,其中动画和转场是控制动画的核心。我们一般开发动画类,在特定的时间添加或删除类(react中可以使用状态控制)来达到动画的效果!简单流畅,性能不错,但是对动画的控制不够精细,能实现的动画有限,存在兼容性问题!
2.通过js开发动画,通常的思路是使用定时器,比如settimeout、setinterval和requestanimationframe,它们可以在react的各种钩子函数中开发,它们对动画的控制更精细。但是如果使用原生js开发,也会出现兼容性问题,性能不佳,可能会出现一些卡顿等现象!
3.使用插件react-transition-group。
4.使用第三方动画库,如react-motion、animated、velocity-react等。
综上所述,我个人认为简单的动画应该用css3和js开发(前提是保证兼容性)。相比动画库,自己写的代码要少很多,页面整体加载速度会更快!如果遇到自己难以实现的复杂动画,可以使用优秀的第三方库。如果在使用第三方库的时候可以按需加载,那就更好了。有时候实在没办法我会自己把代码库分开!
喜欢我的回答就关注我。有问题可以评论。让让我们一起学习,一起成长!