ホームページ  >  記事  >  ウェブフロントエンド  >  vue ルーティングの遅延読み込み例の詳細な説明

vue ルーティングの遅延読み込み例の詳細な説明

小云云
小云云オリジナル
2018-03-13 09:28:533179ブラウズ

この記事では主に、Vue ルーティングの遅延ロードの実装方法を紹介します。異なるルートに対応するコンポーネントを異なるコード ブロックに分割し、ルートにアクセスしたときに対応するコンポーネントをロードすることができます。皆さんのお役に立てれば幸いです。

  1. コンポーネントはアロー関数にすることができ、動的インポート構文を使用してコードチャンクポイントを定義できます

  2. ネットワーク内に動的にロードされたコンポーネント名を確認したい場合は、

  3. を追加できます。同時に 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: &#39;<App/>&#39;
 render() {

  return (
   <p>
    <App></App>
   </p>
  )
 } 
})

関連する推奨事項:

原理と実装jquery の遅延読み込みについて

vue で画像を遅延読み込みするには、vue-lazyload プラグインを使用します

Vue のコード分割と遅延読み込みについて

以上がvue ルーティングの遅延読み込み例の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。