javascript - 在渲染页面之前加载 Div (React)

标签 javascript html reactjs components lifecycle

我有一个页面,但它很重,并且 react 仍然花费几秒钟来加载所有组件,我想放置一个具有更大 z-index 的 div 来重叠它。问题:

componentWillMount 在控制台上打印“test”,但不渲染 div:

componentWillMount() {
    return (
        <div className={this.props.classes.modalLoading}>
            TESTE
        </div>
    )
}

注意 css= 100vw,100vh,bg:黑色,颜色:白色

是否可以在另一个组件“Loader”中进行肢解以在其他地方使用? (控制台日志不起作用)

render() {
    const { classes } = this.props
    return (
        <div className={classes.root} ref={'oi'}>
            <LayoutCard {...this.props}/>
        </div>
    )
}

componentDidMount() {
    {console.log('teste 3')}
}

最佳答案

好吧,这不是 React 的工作原理:) 它渲染从 render() 方法返回的 JSX。componentWillMount() 的返回值与 render 方法无关。

如果你想要一个加载器,你应该在主组件上设置一个状态,以便在返回(返回加载器 div)和返回(返回页面内容)之间进行交换。我不确定你所说的“ react ”中的“加载”是什么意思。也许有同步ajax的东西?完成后设置一个状态。

if(this.state.loaded) {
    return <Loader />
} else {
    return <Content />
}

如果你指的是字体、样式表和图像之类的东西...... 好吧,那是它的副本

Show loading icon before first react app initialization

关于javascript - 在渲染页面之前加载 Div (React),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48811483/

相关文章:

html - 分隔线不显示悬停效果

javascript - reactjs如何更新状态

javascript - ReactJS — 检测状态变化的问题

javascript - 单击相关链接滚动到 Bootstrap 面板主体

javascript - 开 Jest 错误意外的 token ...(ES6)

javascript - 当父组件重新渲染时如何停止子组件的重新渲染

javascript - Esprima 检测全局范围访问

javascript - 将 Javascript 代码转换/转义为字符串以放置在 HTML 页面上

javascript - ECMAScript 6 Map & Set - 在迭代过程中可以安全删除吗?

html - Node.js 与express.js 相比更强大