RubyLouvre / anu

the React16-compat library with hooks

Home Page:https://rubylouvre.github.io/anu/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

1.4.9的requestIdleCallback有时间分片吗?

xilixjd opened this issue · comments

commented

感觉现在的requestIdleCallback并没有时间分片
deadline.timeRemaining() 永远大于 ENOUGH_TIME

// function requestIdleCallback(fn) {
//     fn(deadline);
// }
Renderer.scheduleWork = function () {
    // performWork(deadline);
    requestIdleCallback(performWork)
};

我把anu里的requestIdleCallback注释掉,改为用浏览器的requestIdleCallback
再把调用performWork的代码也改了,这样行吗

还没有,目前异步功能在官方React也要到17才支持

commented

了解了
那 fiber 架构在不时间分片的情况下是否也比 react15 的架构渲染效率更优呢?
我用 anu 的 1.4.9 和之前未支持 16 的 1.1.x 版本同时渲染 10 万个节点

class App extends React.Component {
            render() {
                let divs = []
                for (let i = 0; i < 100000; i++) {
                    divs.push(<div>{i}</div>)
                }
                return (
                    <div>
                        {divs}
                    </div>
                )
            }
        }

1.1.x 版本非常慢,大概需要 20 秒页面才出来
1.4.9 效率快很多,差不多 3 秒就能渲染出来
是递归渲染的效率问题吗?