この記事では主に、Vue ルーティングの遅延ロードの実装方法を紹介します。異なるルートに対応するコンポーネントを異なるコード ブロックに分割し、ルートにアクセスしたときに対応するコンポーネントをロードすることができます。皆さんのお役に立てれば幸いです。
コンポーネントはアロー関数にすることができ、動的インポート構文を使用してコードチャンクポイントを定義できます
ネットワーク内に動的にロードされたコンポーネント名を確認したい場合は、
を追加できます。同時に webpack.base.conf.js の出力のファイル名の下に chunkFileName を追加します
code
// router里面的index.js import Vue from 'vue' import Router from 'vue-router' Vue.use(Router) export default new Router({ routes: [ { path: '/', name: 'home', /* * 使用动态组件,component可以是一个箭头函数 * @表示src目录 * 如果想在network里面看到动态加载的组件名字,可以加webpackChunkName,同时要在webpack.base.conf.js里面的output里面的filename下面加上chunkFileName * network里面动态加载模块名称 */ component: () => import(/* webpackChunkName: 'home' */'@/pages/Homes') }, { path: '/todos', name: 'Todos', component: () => import(/* webpackChunkName: 'todo' */'@/pages/Todos') } ] })
上記の @ は現在の src ディレクトリを表すことに注意してください。 詳細については、webpack を参照してください。設定
webpack.base.conf.js里面添加 chunkFilename: '[name].js' output: { path: config.build.assetsRoot, filename: '[name].js', // 需要配置的地方 chunkFilename: '[name].js', publicPath: process.env.NODE_ENV === 'production' ? config.build.assetsPublicPath : config.dev.assetsPublicPath }
分析
設定後、ルーティング遅延読み込みを使用して、npm run dev を実行してプロジェクトを実行し、ネットワークを開いて更新すると、次のことがわかります。 home.js が読み込まれます。名前は上で定義した webpackChunkName と同じであることがわかり、todos をクリックすると todo.js が読み込まれます。これは、ルートの遅延読み込みの単純な使用法です。
その他
main.js のプロジェクトのエントリでは、テンプレート構文を使用することも、レンダリング関数を使用することもできます
new Vue({ el: '#app', router, components: { App }, /* * 这里使用的template的语法 * 也可以使用render函数,直接return一个html结构 */ // template: '<App/>' render() { return ( <p> <App></App> </p> ) } })
関連する推奨事項:
vue で画像を遅延読み込みするには、vue-lazyload プラグインを使用します
以上がvue ルーティングの遅延読み込み例の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。