この記事では、Vue の非同期コンポーネント関数の簡単な分析を紹介します。必要な場合は、対応するコード例を参照してください。
export default new Router({ routes: [ { path: '/live', name: 'live', component: () => import('@/view/live/live.vue') } ] })
上記のコードは、非常に一般的なルーター コード分割です。Live.vue はコードが live にルーティングされるときにのみロードされます
しかし、この方法では、live.vue を取得するプロセスは何もなく空白になります。これは、vue
新建一个 loadable.vue <template> <index></index> </template> <script> import LoadingComponent from './load.vue' // LoadingComponents是 live.vue为获取前展示的内容 export default { components: { index: () => ({ component: import('@/view/live/live.vue'), // 异步组件加载时使用的组件 loading: LoadingComponent, // 展示加载时组件的延时时间。默认值是 200 (毫秒) delay: 200, // 如果提供了超时时间且组件加载也超时了, // 则使用加载失败时使用的组件。默认值是:`Infinity` timeout: 3000 }) } } </script> 然后修改router.js export default new Router({ routes: [ { path: '/live', name: 'live', component: import('loadable.vue') } ] })
が提供する非同期構築を使用することで解決できます。この方法では、live.vue
を取得する前にカスタマイズされた読み込み表示が表示されますが、ルートが多く、ロード可能なものを書くことはできません。ルートごとに vue を作成するため、関数を作成します
新建一个 loadable.js import LoadingComponent from './load.vue' export default (asyncComponent) => { const Com= () => ({ // 这里vue官网可以知道具体有哪些参数可以设置 // https://cn.vuejs.org/v2/guide/components-dynamic-async.html#%E5%A4%84%E7%90%86%E5%8A%A0%E8%BD%BD%E7%8A%B6%E6%80%81 component: asyncComponent(), loading: LoadingComponent }) return { render (h) { return h(Com, {}) } } } 然后修改一下router.js import loadable from 'loadable.js' export default new Router({ routes: [ { path: '/live', name: 'live', component: loadable (() => import('@/view/live/live.vue')) } ] })
を解決するには、このような最小限の vue 非同期関数が完成します
関連する推奨事項:
VSCode による Vue コンポーネントと Js モジュールの導入方法
以上がVue の非同期コンポーネント関数の簡単な分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。