当前位置: 首页 > 知识库问答 >
问题:

create-react-app:如何在React呈现之前加载html

曾歌者
2023-03-14

我正在尝试在反应加载之前添加一个闪屏。

因为我使用的是react脚本/react-app,所以我的index.tsx只有以下部分:

ReactDOM.render(<App />, document.getElementById("root"));

我试着在同一个页面上添加我自己的div,但它没有显示出来。

我想显示一个简单的空白屏幕与我的飞溅图像在1秒定时器之前的反应加载,以避免/隐藏渲染元素的移动。

**如果我确实在app.tsx中添加了屏幕,则在屏幕加载之前会发生移动

更新

正如Rishabh在下面指出的,index.html在/public文件夹中。所以我最后结合了两种方法。

>

  • 在react启动前添加屏幕:

    <div id="root">
      <div id="dimScreen">
        <img src="/img/logo.png" />
      </div>
    </div>
    

    加载适当的装载机非顶部.5-1秒

    class App extends Component {
        state = {
            loading: true
        }
        componentDidMount() {
            setTimeout(() => {
                this.setState({ loading: false });
            }, 1000);
        }
        render() {
            return (
                <React.Fragment>
                    {
                        this.state.loading ?
                            <Loader />
                            : (
                                <div className="app">
                                    <Header />
                                    <MyComponent />
                                </div>
                            )
                    }
                </React.Fragment>
            );
        }
    }
    

    到目前为止,这种方法是工作最好的,但如果我发现问题或更好的东西,将会更新

  • 共有1个答案

    闾丘才哲
    2023-03-14

    这是一个使用statesetTimeout()显示加载程序5秒钟的示例,您可以给出 的位置,而不是 启动屏幕组件。

    import React, { Component } from 'react';
    
    import Drawer from '../Drawer/Drawer';
    import Loader from '../../components/UI/Spinner/Loader/Loader';
    
    class App extends Component {
      state = {
        loading: true
      }
    
      componentDidMount(){
        setTimeout(() => {
          this.setState({loading: false});
        }, 5000);
      }
    
      render() {  
        return (
          <React.Fragment>
            {
              this.state.loading ? <Loader />: <Drawer />
            }
          </React.Fragment>
        );
      }
    }
    
    export default App;
    

    希望有帮助!

     类似资料:
    • Create React App 不用配置就可以创建 React App。 全局安装: npm install -g create-react-app 创建 App: create-react-app my-appcd my-app/ 启动 npm: npm start 打开 http://localhost:3000/  查看你的 App。 如果你准备将其部署到生产环境,只需创建一个压缩包,并且运行 npm run build。

    • Create React Native App The fastest way to create universal React Native apps npx create-react-native-app Once you're up and running with Create React Native App, visit this tutorial for more informat

    • Create React Redux App Structure Create React + Redux app structure with build configurations. What can I find here? Express, Cors React + Redux, ES6, async/await Web Components (Custom Elements) inte

    • create-react-app React Project with Node Express Backend Example on using create-react-app with a Node Express Backend Usage Install nodemon globally npm i nodemon -g Install server and client depende

    • 问题如下: 想要在React 项目执行yarn build 时, 给index.html 增加后缀 没有使用react-eject, 使用的是crao 替代, 但是craco.config.js 配置 HtmlWebpackPlugin不生效。 craco.config.js 配置如下: package.json 部分组件版本如下: 执行yarn build 打包后,配置无效, 请教各位大佬们了

    • 我想知道是否有人知道如何在“创建-反应-应用”环境中使用https。我在自述文件或快速搜索中找不到任何相关信息。我只希望https://localhost:3000能够工作,或者https://localhost:3001能够工作。