オンデマンドローディングVUE達成する3つの方法:require.ensure WebPACKのVUE非同期成分、ES提案インポート()()

1. VUE非同期ASSEMBLY

  • 使用VUEルーティングするように構成VUE-ルータ、非同期コンポーネントの技術は、それがオンデマンドでロードすることができます。

しかし、この場合にはコンポーネントはJSファイルを生成します。
たとえば、次のように:

        {
            path: '/promisedemo',
            name: 'PromiseDemo',
            component: resolve => require(['../components/PromiseDemo'], resolve) }

2. ES提案インポート()

VUE公式文書:ルート遅延読み込み(インポートを使用して())

  • 次のようにルートコードに構成VUEルータです。
// 下面2行代码,没有指定webpackChunkName,每个组件打包成一个js文件。
const ImportFuncDemo1 = () => import('../components/ImportFuncDemo1') const ImportFuncDemo2 = () => import('../components/ImportFuncDemo2') // 下面2行代码,指定了相同的webpackChunkName,会合并打包成一个js文件。 // const ImportFuncDemo = () => import(/* webpackChunkName: 'ImportFuncDemo' */ '../components/ImportFuncDemo') // const ImportFuncDemo2 = () => import(/* webpackChunkName: 'ImportFuncDemo' */ '../components/ImportFuncDemo2') export default new Router({ routes: [ { path: '/importfuncdemo1', name: 'ImportFuncDemo1', component: ImportFuncDemo1 }, { path: '/importfuncdemo2', name: 'ImportFuncDemo2', component: ImportFuncDemo2 } ] })

3. WebPACKの提供require.ensure()

  • 使用WebPACKの経路に構成されたVUEルータrequire.ensureの必要な技術は、ローディングも実装されてもよいです。

この場合には、同一の指定されたルーティングchunkName複数のパッケージ化ファイルJSにマージされます。
たとえば、次のように:

 
        {
            path: '/promisedemo',
            name: 'PromiseDemo',
            component: resolve => require.ensure([], () => resolve(require('../components/PromiseDemo')), 'demo') }, { path: '/hello', name: 'Hello', // component: Hello component: resolve => require.ensure([], () => resolve(require('../components/Hello')), 'demo') }

おすすめ

転載: www.cnblogs.com/zlq92/p/11200353.html