微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ReactJS-通过延迟加载自动创建块

如何解决ReactJS-通过延迟加载自动创建块

假设我们有三个页面,并且希望将它们分成不同的块。如果我们手动添加/* webpackChunkName: "chunkName" */,可能会发生这种情况。

const Home = lazy(() => import(/* webpackChunkName: "HomePage" */ "../../pages/Home"));
const Login = lazy(() => import(/* webpackChunkName: "Login" */ "../../pages/Login"));
const Register = lazy(() => import(/* webpackChunkName: "Register" */ "../../pages/Register"));

是否可以使我们的生活更轻松并避免一直使用webpackChunkName?

解决方法

一种方法是在块名称注释中使用[request]占位符来动态设置块名称。

您可以创建一个函数,该函数将调用import()函数并使用[request]占位符设置动态块名称。

然后,使用此功能延迟导入组件。

这里是一个例子。

const lazyImport = path => {
  return import(/* webpackChunkName: "[request]" */ `${path}`);
};

const Home = React.lazy(() => lazyImport("../../pages/Home"));
// Chunk name will be pages-Home.chunk.js

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。