mcfly

Results 7 comments of mcfly

``` javascript const arr = [ { id: 1, name: '广东', children: [ { id: 11, name: '深圳', children: [ { id: 111, name: '南山区' }, { id: 112, name:...

> A temporary solution, temporarily ignore the detection of HtmlWebpackPlugin > > ``` > const SpeedMeasurePlugin = require("speed-measure-webpack-plugin"); > > const smp = new SpeedMeasurePlugin(); > > const config =...

> > @stormqx @shellphon 最近也在探索DOM回收的情况,如果是等高的列表可以直接考虑虚拟列表https://github.com/hilongjw/vue-recyclerview ,然而我这需求是个瀑布流,不好直接计算所有卡片的高度。 > > 所以参考了lazysizes的思路,通过$refs直接拿到所有的card,添加**一个滚动监听器**,forEach计算所有卡片所在位置,如果在可视范围之外,设置flag给card组件,card组件内部根据这个flag决定渲染内容或空白占位DOM。(使用了Vuejs) > > lazysizes里是通过特定的classname来拿到所有card,然后遍历,思路差不多,可以参考一下 > > 虚拟列表挺好的,还有需要考虑的点是数据更新时的滚动条位置问题。毕竟滚动条是模拟出来的。 尝试用了虚拟列表dom,但是有些问题,比如我向下滚动后又向上滚动导致之前渲染过的节点又要重新渲染一遍,而且向上滚动过快的话会出现白屏体验上比较差,是不是我开发姿势又问题?

我尝试换了一种思路,https://github.com/mcfly001/choose-sku

说以下整体思路 当我们选择红色的时候,我们过滤得到id为1,2,3,4这几个sku的specs中包含红色,那我们就将这些specs合并,同时去重,获取到16G、32G、150ml、300ml、450ml这几个特性值可以选择。 当我们选择红色、32G的时候我们发现id为2,3,4这几个sku包含了红色且包含了32G,通过合并和去重之后获取到150ml,300ml,450ml这3个节点可选。 以此类推选择在增加一个也只是多了一个过滤条件,最后去重得到的特性值就是可选的,同时我们还能获取到价格区间以及剩余库存

> @mcfly001 能给出代码实现吗? https://github.com/mcfly001/choose-sku

我尝试直接throw一个错误,发现可以阻止事件冒泡 ``` /** 阻止底部被拖拽 */ myChart.on('datazoom', function () { throw new Error('主动上报一个错误'); }); ```