首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

腾讯面试官:如何0到1实现一个高性能Collapse折叠组件,直到现在我还实现不出来

现代JavaScript高级小册 深入浅出Dart 现代TypeScript高级小册 大家好,我是linwu,之前面腾讯某个部门的时候,面试官曾经给了我一道手写题,题目大概就是0到1实现一个Collapse...折叠组件,然后我根据提供接口属性,我大概实现出来类似下面组件的形态,然后面试官问动画除了height形式,还有其他它方式么,因为height的变化会触发重排,另外折叠面板panel如果是大量数据,打开的时候会卡顿...accordion:如果设置为true,我们将启用手风琴模式。...isOpen); if (accordion) { setCurrentActiveKey(isOpen ?...这个子组件将作为Collapse组件的一部分,用于表示一个可折叠的面板。 arrow:这是一个自定义的箭头。如果这是一个React节点,antd-mobile将自动为你添加旋转动画效果。

33420

LongAdder 窥见并发组件的设计思路

AtomicLong 的缺陷 大家可以阅读我之前写的 JAVA 的 CAS 详细了解 AtomicLong 的实现原理。...回忆一下,什么情况会进入到这个 longAccumulate 方法, cell[] 数组为空, cell[i] 数据的某个下标元素为空, casBase 失败, a.cas 失败, cell.length...- 1 < 0 在 longAccumulate 中有几个标记位,我们也先理解一下 cellsBusy cells 的操作标记位,如果正在修改、新建、操作 cells 数组的元素会,会将其 cas...为什么 jdk 1.8 还是保留了 AtomicLong 的实现呢?...而在 Sentinel LongAdder 承担的只是统计任务,且允许误差。 总结 LongAdder 使用了一个比较简单的原理,解决了 AtomicLong 类,在极高竞争下的性能问题。

42900
领券