当前位置: 首页 > news >正文

程序员开源网站微信公众号前端开发流程

程序员开源网站,微信公众号前端开发流程,app开发平台软件,报名入口网站建设背景 随着项目越来越大,打包后的包体积也越来越大,严重影响了首屏加载速度,需要对路由和组件做懒加载处理 主要用到了react中的lazy和Suspense。 废话不多说,直接上干货 路由懒加载 核心代码 import React, { lazy, Suspens…

背景

随着项目越来越大,打包后的包体积也越来越大,严重影响了首屏加载速度,需要对路由和组件做懒加载处理

主要用到了react中的lazy和Suspense。

废话不多说,直接上干货

路由懒加载

核心代码

import React, { lazy, Suspense } from "react";
const loading = () => <h3>loading....</h3>;
const Caidan1 = lazy(() => import("@/pages/mud1/caidan1"));const meunRoutes = [{name: "模块1",path: "/m1",icon: <AppstoreOutlined />,children: [{name: "gltf模型",path: "/m1/caidan12",icon: <AppstoreOutlined />,element: (<Suspense fallback={loading()}><Caidan1 /></Suspense>),},// 。。。。

配合路由表的完整例子

// 路由表
import React, { lazy, Suspense } from "react";
import Home from "../pages/home";
import Layout from "@/components/Layout";const loading = () => <h3>loading....</h3>;const Caidan1 = lazy(() => import("@/pages/mud1/caidan1"));
const Caidan2 = lazy(() => import("@/pages/mud1/caidan2"));
// 404页面
const NotFound = () => <h1>**** 404 ****</h1>;const meunRoutes = [{name: "模块1",path: "/m1",icon: <AppstoreOutlined />,children: [{name: "gltf模型",path: "/m1/caidan12",icon: <AppstoreOutlined />,element: (<Suspense fallback={loading()}><Caidan1 /></Suspense>),},{name: "模型动画",path: "/m1/caidan13",icon: <AppstoreOutlined />,element: (<Suspense fallback={loading()}><Caidan2 /></Suspense>),},],},
];// 配置路由表
const routes = [{path: "/",element: <Navigate to="/home" />,},{path: "/home",element: <Home />,},{path: "/",element: <Layout />,children: handleMenuRoutes(meunRoutes),},{ path: "*", element: <NotFound /> },
];// 处理menu routes
function handleMenuRoutes(arr) {let res = [];arr.forEach((item) => {if (item.children && item.children.length > 0) {item.children.forEach((yitem) => {let obj = {path: yitem.path,element: yitem.element,};res.push(obj);});}});return res;
}const AppRouter = () => useRoutes([...routes]);
export { AppRouter, meunRoutes };

组件懒加载

import { useEffect, useState, lazy, Suspense } from "react";const TestCpn = lazy(() => import("@/components/testCpn"));
const Home = () => {const [show, setShow] = useState(false);function fn() { setShow(true)}return (<div><button onClick={fn}>加载大组件</button>{show && (<Suspense><TestCpn /></Suspense>)}</div>);
};
export default Home;

效果
组件加载前
在这里插入图片描述
组件懒加载后
在这里插入图片描述
这样就会大大加快首屏加载速度

http://www.laogonggong.com/news/100000.html

相关文章:

  • 莒县城乡建设局网站科技服务网站建设方案
  • 大连网站建设方法58黄页
  • 苏州外贸网站设计公司名字大全不重名
  • 山东网站seo开发中国建设银行网站用户名是什么
  • 桥头镇网站建设公司加强对网站建设
  • 山东鸿泰建设集团有限公司网站如何编辑做网站
  • 乡镇网站建设微商手机网站模板
  • 微软做网站的软件建网站难吗
  • 初学者做网站wordpress移动广告不显示
  • 精准扶贫网站建设的意义wordpress公众号登陆不了
  • 专业响应式网站制作网站特效代码上那找好
  • 开企网站建设定位网站关键词
  • 如何做酒网站彩视网站建设策划
  • 宜宾市网站建设广西壮族自治区官网
  • 触屏版网站模板广告推广代理
  • 宝安网站建设-信科网络昆明网站建站
  • 青岛做网站eoe电子元器件采购商城
  • 商务推广网站供需平台类网站建设
  • 湖北省节能建设网站wordpress删除作者信息
  • 怎么在国际网站做推广上海个人做网站
  • 网站界面需求上海化工网站建设
  • php做网站基本流程江苏建设工程网站
  • 福田附近公司做网站建设哪家效益快在菲律宾做网站推广怎么样
  • 临沂网站建设方案书网站英文版怎么做
  • 网站大全下载软件安装企业网站
  • 加强网站基础建设项目东昌府网站建设公司
  • 河北衡水建设网站公司网站备案系统登陆不上
  • 在网站上做承诺书深圳it外包服务
  • 免费网站搭建平台wordpress迁站
  • 这个网站做海外推广电子签名在线制作