- 金属破碎机
- 破石机
- 石头破碎机
- 颚式破碎机
- 反击式破碎机
- 锤式破碎机
- 复合式破碎机
- 冲击式破碎机
- 立式复合破碎机
- 重锤式破碎机
- 花岗岩石破碎机
- 高效破碎机
- 双齿破碎机
- 煤矸石破碎机
- 四辊破碎机
- 环锤式破碎机
- 小型破碎机
- 双轴破碎机
- 单辊式破碎机
- 对辊式破碎机
- 圆锥式破碎机
- 振动给料机
- 圆振动筛
- 斗式提升机
- 直线振动筛
- 电磁振动给料机
- 滚筒筛沙机
- 高频筛
- 振动筛
- 滚筒洗石机
- 干式磁选机
- 螺旋溜槽
- 螺旋分级机
客户购机前,公司免费派工程技术人员到用户现场为用户规划场地、...
- 更新一下,现在Vue的nextTick实现移除了MutationObserver的方式(兼容性原因),取而代之的是使用MessageChannel。JakeArchibald有一篇介绍task和microtask的文章,可以了解一下:Tasks,microtasks,queuesandschedulesJS的eventloop执行时会区分task和microtask,引擎在每个task执行完毕,从队列中取下一个task来执行之前,会先执行完所有microtask队列中的microtask。setTimeout回调会被分配到一个新的task中执行,而Promise的resolver、MutationObserver的回调都会被安排到一个新的microtask中执行,会比setTimeout产生的task先执行。要创建一个新的microtask,优先使用Promise,如果浏览器不支持,再尝试MutationObserver。实在不行,只能用setTimeout创建task了。为啥要用microtask?根据HTMLStandard,在每个task运行完以后,UI都会重渲染,那么在microtask中就完成数据更新,当前task结束就可以得到最新的UI了。反之如果新建一个task来做数据更新,那么渲染就会进行两次。(当然,浏览器实现有不少不一致的地方,上面Jake那篇文章里已经有提到。)至于MutationObserver如何模拟nextTick这点,直接看源码,其实就是创建一个TextNode并监听内容变化,然后要nextTick的时候去改一下这个节点的文本内容:varcounter=1varobserver=newMutationObserver(nextTickHandler)vartextNode=document.createTextNode(String(counter))observer.observe(textNode,{characterData:true})timerFunc=()=>{counter=(counter+1)%2textNode.data=String(counter)}
Vue中如何使用MutationObserver做批量处理
2019-11-26 06:50:21
- 上一条:上一篇:版权和专利的存在对整个人类社会发展是利大于弊还是弊大于利
- 下一条:下一篇:变速箱增加一档制造难度和结构设计难度增加多少