webpack3按需加载遇到的问题

这篇博客探讨了在webpack3中实现按需加载时遇到的问题,包括语法配置需求和特定包的引入。提到了transform-runtime与babel-polyfill的区别,并提供了custom-react源码作为参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这节主要说的是自定义webpack之关于配置按需加载遇到的问题
- AsyncComponent.js

import React, {Component} from "react";

export default function asyncComponent(importComponent) {
  class AsyncComponent extends Component {
    constructor(props) {
      super(props);

      this.state = {
        component: null
      };
    }

    async componentDidMount() {
      const {default: component} = await importComponent();

      this.setState({component: component});
    }

    render() {
      const Component = this.state.component;

      return Component
        ? <Component {...this.props}/>
        : null;
    }
  }

  return AsyncComponent;
}
  1. Home.js
import React from 'react'
const Home = () => {
  return (<h1>It's My Home</h1>)
}

export default Home
  1. Menu.js
import React from 'react'
import {Menu, Icon} from 'antd';
import {Link} from 'react-router-dom'
import asyncComponent from './AsyncComponent';

const AsyncHome = asyncComponent(() => import("./Home"))
const SubMenu = Menu.SubMenu;

class MyMenu extends React.Component {
  render() {
    return (
      <Router>
        <Route path="/" component={AsyncHome} />
        <Menu theme="dark" defaultSelectedKeys={['1']} mode="inline">
          <Menu.Item key="2">
            <Icon type="desktop"/>
            <Link to="/">
              <span>Option 2</span>
            </Link>
         </Menu.Item>
        </Menu>
      </Router>
    )
  }
}

export default MyMenu

预期的结果,这样应该是可以的.可是对于一些es6语法,webpack还是需要配置一番.所以碰到了问题.

发现的问题

  1. Uncaught ReferenceError: regeneratorRuntime is not defined

解决方法: 引入transform-runtime.

包的地址

transform-runtime与babel-polyfill的区别

  1. Uncaught ReferenceError: webpackJsonp is not defined

解决方法: 引入CommonsChunkPlugin

custom-react源码

原文地址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值