返回顶部
首页 > 资讯 > 前端开发 > JavaScript >Fragment占位组件不生成标签与路由组件lazyLoad案例
  • 261
分享到

Fragment占位组件不生成标签与路由组件lazyLoad案例

2024-04-02 19:04:59 261人浏览 薄情痞子
摘要

目录使用作用案例路由组件的lazyLoad案例使用 Fragment表示占位组件 并不会生成一个标签 帮助解决了报错问题 其他什么都不会生成 <Fragment><

使用

Fragment表示占位组件 并不会生成一个标签 帮助解决了报错问题 其他什么都不会生成

<Fragment><Fragment>
<></>

两者的区别是 Fragment 能接收参数 key 可用于循环遍历 <> 内不能包含任何参数

作用

可以不用必须有一个真实的DOM根标签了

案例

import React, {
    Component, Fragment
} from 'react';
// Fragment表示占位组件 并不会生成一个标签 帮助解决了报错问题 其他什么都不会生成
class Text extends Component {
    render() {
        return (
            <Fragment>
                <input/>
                <ul>
                    <li>Learn More</li>
                    <li>Learn React</li>
                </ul>
            </Fragment>
        );
    }
}
export default Text;

路由组件的lazyLoad

//1.通过React的lazy函数配合import()函数动态加载路由组件 ===> 路由组件代码会被分开打包
const Login = lazy(()=>import('@/pages/Login'))
//2.通过<Suspense>指定在加载得到路由打包文件前显示一个自定义loading界面
<Suspense fallback={<h1>loading.....</h1>}>
       <Switch>
           <Route path="/xxx" component={Xxxx}/>
           <Redirect to="/login"/>
       </Switch>
   </Suspense>

案例

import React, { Component,lazy,Suspense } from 'react'
import { NavLink,Route } from 'react-router-dom'
// import Home from './Home'
// import About from './About'
import Loading from './Loading'
const About = lazy(() => import("./About"))
const Home = lazy(() => import("./Home"))
export default class Demo extends Component {
  render() {
    return (
      <div>
        <div className="row">
        </div>
        <div className="row">
          <div className="col-xs-2 col-xs-offset-2">
            <div className="list-group">
              <NavLink activeClassName="atguigu" className="list-group-item" to="/about">About</NavLink>
              <NavLink activeClassName="atguigu" className="list-group-item" to="/home">Home</NavLink>
            </div>
          </div>
          <div className="col-xs-6">
            <div className="panel">
              <div className="panel-body">
                <Suspense fallback={<Loading/>}>
                    {}
                  <Route path="/about" component={About} />
                  <Route path="/home" component={Home} />
                </Suspense>
              </div>
            </div>
          </div>
          </div>
      </div>
    )
  }
}

以上就是Fragment 占位组件不生成标签与路由组件lazyLoad案例的详细内容,更多关于Fragment 占位组件的资料请关注编程网其它相关文章!

--结束END--

本文标题: Fragment占位组件不生成标签与路由组件lazyLoad案例

本文链接: https://lsjlt.com/news/168905.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作