账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    React <route>组件可以异步挂载吗
    40
    0

    比如这种写法:

    {this.state.type==1 && <TodoHeader></TodoHeader>}

    在一个异步请求后setState将type设为1,子组件被挂载。

    但如果是route的写法

    <Switch>
    <Route path="/data" component ={ props => <Databoard/>}
    </Route>
    <Switch>

    该如何实现这种加载方式呢

    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 10 元积分
        全部回答
    • 0
    • 在React中,<route>组件并不是一种内置的异步挂载组件,而是用于定义路由结构的React组件。React Router是React Router library的主模块,用于管理React应用中的路由,包括动态路由、路由懒加载、路由守卫等。

      <route>组件是React Router的基本组件,其主要职责是提供路由配置和导航数据。以下是如何使用<route>组件进行异步挂载的基本步骤:

      1. 首先,你需要在你的React项目中引入React Router库。在你的项目根目录中,打开package.json文件,添加以下依赖:

      json "dependencies": { "react": "^17.0.2", "react-dom": "^17.0.2", "react-router-dom": "^6.3.0" }

      1. 在你的组件文件(例如,MyComponent.js)中,导入并创建<Route>组件:

      ```jsx import React from 'react'; import { BrowserRouter as Router, Route, Link } from 'react-router-dom';

      function MyComponent() { return (

      ); }

      export default MyComponent; ```

      在这个例子中,<Route>组件定义了三个路由:/(默认路由),/about(关于路由),和/contact(联系路由)。每个路由都对应一个<Link>元素,用于导航到对应的组件。

      1. 在你的组件中,你可以使用<Link>元素来设置路由的导航属性。例如,要导航到关于页面,你可以使用以下代码:

      ```jsx function About() { return (

      About

      This is the about page.

      ); }

      export default About; ```

      1. 为了实现异步挂载,你可以在路由配置中使用<Route>组件的history属性。默认情况下,React Router会根据用户是否使用网络来决定路由的加载顺序。然而,如果你想使用异步加载,你可以通过在路由配置中添加historyType="history"属性来实现。例如:

      ```jsx import React from 'react'; import { BrowserRouter as Router, Route, Link } from 'react-router-dom';

      function MyComponent() { return (

      ); }

      export default MyComponent; ```

      在这个例子中,<Route>组件的historyType属性设置为"history",这将导致React Router根据网络请求来决定路由的加载顺序,而不是直接从文件系统中读取。

      注意,异步挂载并不是React Router的默认行为,而是通过<Route>组件的history属性实现的。如果你希望从文件系统中加载路由数据,你可能需要使用像shouldComponentUpdateshouldSwitch这样的React Hook,或者使用第三方库,如axiosfetch,来异步获取路由数据。这些方法通常用于处理复杂的路由配置,包括懒加载、数据加载、状态同步等。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部