Comments (11)
from kbone.
一般来说不会,有监听滚动事件并在里面做什么操作么?
from kbone.
我们有个popup组件,点击之后反应很慢,观察了setData,次数只有三次,数据量也不大,修改的组件的层级也不深,之前是挂载到了body下,现在是挂载到了一个element自定义组件下,但是感觉几乎没有什么优化,还有什么解决办法吗
from kbone.
看描述不太明白,看标题说是没有 setData 滚动不流畅,但是实际上是有 setData,从触发点击事件到渲染完成比较慢?
这里滚动与渲染是属于两个不同的问题,具体的问题是指哪一块?
from kbone.
其实滚动还好,真正卡顿的是点击popup要等待1s甚至更长的时间才能出来,就是触发点击事件到渲染完成比较慢,我在miniprogram-element/base里的callEvent中进行打印,发现是在小程序中进行打印,得过一段时间才能执行到这里,所以感觉时间都消耗在小程序点击-触发事件这个过程,有什么解决办法吗,还是说就到瓶颈了,目前页面上1600个节点,已经无法正常交互了,在八九百节点的时候,点击等待1s左右还能反应
from kbone.
其实对于页面节点数量过多且又亟需性能的场景,是更推荐原生开发的:
不过按你描述耗时在 callEvent 也不太对劲,你可以在 miniprogram-element/base 里的这里开始打点看看:
看是小程序点击到触发 onTap 慢,还是开始调 callEvent 到触发 addEventListener('click') 慢?按道理虽然 callEvent 本身会有冒泡/捕获处理,但不至于慢这么多,kbone 的性能瓶颈应该在渲染上。
from kbone.
嗯,感觉有可能就是渲染时候有问题,因为页面上的滚动事件触发的很及时,没有卡顿,可能是开发者工具的打印的有问题。
from kbone.
我想kbone有没有可能像taro一样重写react的renderer,因为现在使用react的时候的路径为
react的虚拟dom-kbone模拟的虚拟dom-小程序的dom
如果能重写renderer,可以直接在render里进行setData,将react的虚拟dom转化为小程序的dom,这样会不会相对提高一些性能,
from kbone.
我想kbone有没有可能像taro一样重写react的renderer,因为现在使用react的时候的路径为 react的虚拟dom-kbone模拟的虚拟dom-小程序的dom 如果能重写renderer,可以直接在render里进行setData,将react的虚拟dom转化为小程序的dom,这样会不会相对提高一些性能,
理论上当然可以这么做,不过 kbone 一开始的设计就是不耦合任何 Web 框架,只是纯粹提供一个类 jsDom 一样的使用方式(方便接入各种各样的 Web 框架)。如果只是为了优化渲染性能的话,我们通常不会去引入第三方框架再在第三方框架上进行优化,而是直接优化小程序框架本身,比如近期小程序中的组件框架就有升级计划 —— 将 exparser 替换成 glass-easel
from kbone.
如果我使用这个属性generate.wxCustomComponent 页面上有一半程序原生组件和一半kbone混合渲染,性能会不会比只用kbone大幅度提高
from kbone.
如果我使用这个属性generate.wxCustomComponent 页面上有一半程序原生组件和一半kbone混合渲染,性能会不会比只用kbone大幅度提高
是说页面苛求性能那一部分用原生实现,然后作为第三方自定义组件被 kbone 接入么?这种方式确实是一个比较推荐的性能优化渠道,所以是可以这么做的。相关文档
不过需要明确的是单个页面内的自定义组件实例不能太多,不然有可能本末倒置了(不过正常来说一个页面中也不会有太多第三方自定义组件,如果有太多第三方自定义组件的场景其实就不如直接换成整个页面原生实现更优了)
from kbone.
Related Issues (20)
- ios真机调试报错 selector = selector.replace(regexp, onProcess) HOT 1
- npm run build,h5空白 HOT 1
- vue-cli-plugin-kbone 是不是不支持webpack5项目 HOT 2
- wx-input 组件 触发input 事件的时候,没监听事件返回值,以及不会同步外部value的值。 HOT 2
- 【讨论】新的小程序组件框架 glass-easel HOT 1
- wx-button open-type="agreePrivacyAuthorization" 回调无法触发 HOT 4
- -
- 是否可以支持 Construct 3 引擎? HOT 3
- createIntersectionObserver().relativeToViewport().observe() 问题 HOT 9
- npm install的时候报错,依赖冲突了 HOT 1
- 'rimraf' 不是内部或外部命令,也不是可运行的程序 HOT 1
- kbone递归方案 HOT 1
- 使用window.$$createIntersectionObserver()页面报错异常错误
- 组件属性对齐:input 组件 auto-focus 即将弃用,需要使用 focus 替代 HOT 1
- img xhr 列表下的img的src在init的时候会把所有的图片都通过xhrget一遍,在图片列表较大的时候很影响 HOT 10
- 请问在vue3项目中使用kbone-ui的mp-navigation-bar组件时,如何绑定bindback事件? HOT 3
- 小程序内嵌视频号视频,无法加载到wx-channel-video组件 HOT 11
- 瓦片地图【image】标签在图片较大时(100k左右)在真机环境不显示 HOT 1
- 请求 Blazor WebAssmebly 支持 HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from kbone.