> 웹 프론트엔드 > JS 튜토리얼 > React 라우팅(코드)의 지연 로딩 구현을 위한 또 다른 솔루션

React 라우팅(코드)의 지연 로딩 구현을 위한 또 다른 솔루션

不言
풀어 주다: 2018-10-23 15:30:32
앞으로
3909명이 탐색했습니다.

이 글의 내용은 React Routing의 지연 로딩 구현을 위한 또 다른 솔루션(코드)에 관한 것입니다. 필요한 친구들이 참고할 수 있기를 바랍니다.

이 글에서는 지연 로딩 라우팅에 있어서 React의 여러 구현 솔루션을 간략하게 소개합니다.

전통적인 두 가지 방법

import()

은 ECMAScript에서 제안한 import() 구문을 따르는데, 이는 일반적인 import 문이나 require 함수와 유사하지만 Promise 객체를 반환합니다. 이는 모듈이

usage

function component() {
  return import( /* webpackChunkName: "lodash" */ 'lodash').then(_ => {
    var element = document.createElement('p');
    element.innerHTML = _.join(['Hello', 'webpack'], ' ');
    return element;
  }).catch(error => 'An error occurred while loading the component');
}

// 或者使用async

async function getComponent() {
  var element = document.createElement('p');
  const _ = await import(/* webpackChunkName: "lodash" */ 'lodash');
  element.innerHTML = _.join(['Hello', 'webpack'], ' ');
  return element;
}
로그인 후 복사

require.ensure

webpack 지정 사용법

webpack v1 v2 지정 사용법

usage

require.ensure([], function(require){
    var list = require('./list');
    list.show();
,'list');

<!-- Router -->
const Foo = require.ensure([], () => {
    require("Foo");
}, err => {
    console.error("We failed to load chunk: " + err);
}, "chunk-name");

//react-router2 or 3
<Route path="/foo" getComponent={Foo} />
로그인 후 복사

lazyload-loader를 사용하여

webpack v2+가 비동기식으로 로드됨을 의미합니다.

비교됨 처음 두 개를 사용하면 이 작성 방식이 더 간결해집니다.

비즈니스 코드에서

// webpack 配置文件中 使用lazyload-loader(必须将lazuyload-loader 放置在use的最右侧)

module: {
    rules: [
      {
        test: /\.(js|jsx)$/,,
        use: [
          'babel-loader',
          'lazyload-loader'
        ]
      },
로그인 후 복사

 // 使用lazy! 前缀 代表需要懒加载的Router
 
 import Shop from 'lazy!./src/view/Shop';
 
 // Router 正常使用
  <Route path="/shop" component={Shop} />
로그인 후 복사

원리 사용 방법: https://github.com/rongchangh...

위 내용은 React 라우팅(코드)의 지연 로딩 구현을 위한 또 다른 솔루션의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:segmentfault.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿