検索
ホームページウェブフロントエンドjsチュートリアルvue-cli を使用して複数ページのアプリケーションを開発する簡単な例

プロジェクトを作成する

vue-cli を使用してプロジェクトを作成しますvue-cli 创建一个项目

$ vue init webpack vue-multiple-demo

根据控制台的提示,填写相关信息即可。创建完成后,进入该项目根目录并安装依赖。

$ cd vue-multiple-demo
$ npm install
由于是开发多页面应用,该工程就没有配置 vue-router

最简示例

通过 vue-cli 创建的项目,默认是开发单页应用。如果希望开发多页面,需要调整部分脚本的配置。

入口

src 目录下新建一个 demo.js,为方便起见,直接将 main.js 中的内容复制过去。然后,修改 build/webpack.base.conf.jsentry 为多个。

entry: {
  app: './src/main.js',
  demo: './src/demo.js'
},

模板

在工程根目录下新建一个 demo.html 文件,同样将 index.html 的内容复制过去。为了区分开来,只编辑下 <title></title> 的内容。

<title>demo</title>

发布地址

config/index.jsbuild 配置下,新增一条记录。

index: path.resolve(__dirname, '../dist/index.html'),
demo: path.resolve(__dirname, '../dist/demo.html'),

生产环境配置

调整 build/webpack.prod.conf.jsplugins 中,关于 html 的配置。

修改

new HtmlWebpackPlugin({
  filename: config.build.index,
  template: 'index.html',
  inject: true,
  minify: {
    removeComments: true,
    collapseWhitespace: true,
    removeAttributeQuotes: true
    // more options:
    // https://github.com/kangax/html-minifier#options-quick-reference
  },
  // necessary to consistently work with multiple chunks via CommonsChunkPlugin
  chunksSortMode: 'dependency',
  chunks: ['manifest', 'vendor', 'app']
}),

这里主要有两处改动

  • filename 直接写死

  • 为防止加载不必要的 js,添加 chunks 配置。

新增

new HtmlWebpackPlugin({
  filename: config.build.demo,
  template: 'demo.html',
  inject: true,
  minify: {
    removeComments: true,
    collapseWhitespace: true,
    removeAttributeQuotes: true
    // more options:
    // https://github.com/kangax/html-minifier#options-quick-reference
  },
  // necessary to consistently work with multiple chunks via CommonsChunkPlugin
  chunksSortMode: 'dependency',
  thunks: ['manifest', 'vendor', 'demo']
}),

预览效果

这里不启动本地服务,所以需要修改下静态资源的加载路径,即将 config/index.jsbuild->assetsPublicPath 修改为 ./

assetsPublicPath: './',

构建应用

$ npm run build

直接打开 dist 目录中的 html 文件,即可预览效果。

小结

至此,开发多页面的最简示例就完成了。

进一步优化

实际开发中,页面的数量较多,因而需要批量处理以下配置。

文件目录

源码部分 src 的目录结构如下

  • assets

    • logo.png

  • components

    • HelloWorld.vue

  • entries

    • index.js

    • list.js

  • templates

    • index.html

    • list.html

按照约定

  • entries 用于存放页面入口的 js 文件

  • templates 用于存放页面的模板 html 文件

读取目录

为方便读取页面目录,这里使用 glob 扩展一个方法。

$ npm install glob --save-dev

安装完依赖后,在 build/utils.js 中添加方法

const glob = require('glob')

// 遍历指定目录下的文件
exports.getEntries = (dirPath) => {
  let filePaths = glob.sync(dirPath);
  let entries = {};
  filePaths.forEach(filePath => {
    let filename = filePath.match(/(\w+)\.[html|js]+/)[1];
    entries[filename] = filePath;
  })
  return entries;
}

修改配置

build/webpack.base.conf.js

entry: utils.getEntries('./src/entries/*.js'),

build/webpack.base.prod.conf.js

删除原有的 HtmlWebpackPlugin 相关配置,在文件结束之前遍历添加相关配置即可。

const pages = utils.getEntries('./src/templates/*.html');
for(let page in pages) {
  let fileConfig = {
    filename: path.resolve(__dirname, '../dist/pages/' + page + '.html'),
    template: pages[page],
    inject: true,
    minify: {
      removeComments: true,
      collapseWhitespace: true,
      removeAttributeQuotes: true
    },
    chunksSortMode: 'dependency',
    thunks: ['manifest', 'vendor']
  };
  fileConfig.thunks.push(page);
  // 添加插件配置
  webpackConfig.plugins.push(new HtmlWebpackPlugin(fileConfig));
}

config/index.js

由于输出的地址不在这里配置,之前的删不删除都不影响。但是,调整了目录结构,页面中加载静态资源的路径也要做出调整。

assetsPublicPath: '../',

构建并预览

$ npm run build

构建完成后,直接使用浏览器打开 dist 目录下的 html 文件即可预览效果。

总结

简单总结以下,使用 vue-cli 开发多页面应用的几个关键点。

  • 多入口

  • 多个 HtmlWebpackPluginrrreee

    コンソールのプロンプトに従い、関連情報を入力します。作成後、プロジェクトのルート ディレクトリに移動し、依存関係をインストールします。
  • rrreee
    マルチページ アプリケーションを開発しているため、このプロジェクトには vue-router が構成されていません。
  • 最も単純な例

    vue-cli を通じて作成されたプロジェクトは、デフォルトでシングルページ アプリケーションを開発します。複数のページを開発する場合は、いくつかのスクリプトの構成を調整する必要があります。
  • 入り口

便宜上、src ディレクトリに新しい demo.js を作成します。の内容をコピーします。次に、build/webpack.base.conf.jsentry を multiple に変更します。

rrreee

Template

プロジェクトのルート ディレクトリに新しい demo.html ファイルを作成し、index.html の内容もコピーします。それらを区別するには、<title></title> の内容のみを編集します。

rrreee

リリース アドレス

config/index.jsbuild 設定の下に新しいレコードを追加します。

rrreee

本番環境の構成

html の構成について、pluginsbuild/webpack.prod.conf.js を調整します。 変更

rrreeeここでは主な変更点が 2 つあります

    filename 直接書き込みます

    不要な js が読み込まれないようにするには、chunks 構成を追加します。


    新しい

    rrreee

    プレビュー効果

    🎜ローカルサービスはここでは開始されていないため、静的リソースの読み込みパス、つまりconfigを変更する必要がありますbuild->assetsPublicPath の /index.js ./ に変更されます。 🎜rrreee🎜アプリケーションを構築する🎜rrreee🎜 dist ディレクトリ内の html ファイルを直接開いて、効果をプレビューします。 🎜

    概要

    🎜この時点で、複数のページを開発する最も単純な例が完成しました。 🎜🎜さらなる最適化🎜🎜実際の開発ではページ数が多いため、以下の設定をバッチ処理する必要があります。 🎜

    ファイルディレクトリ

    🎜ソースコード部分srcのディレクトリ構造は以下の通りです🎜
      🎜🎜assets🎜🎜
        🎜🎜logo.png🎜🎜🎜🎜🎜components🎜🎜
          🎜🎜HelloWorld.vue🎜🎜🎜🎜🎜entries🎜🎜
            🎜🎜index。 js🎜🎜🎜🎜 list.js🎜🎜🎜🎜🎜templates🎜🎜
              🎜🎜index.html🎜🎜🎜🎜list .html🎜🎜🎜 🎜🎜契約に従って🎜
                🎜🎜entries はページの js ファイルを保存するために使用されますエントリ🎜🎜🎜🎜templates ページの保存に使用されるテンプレート html ファイル🎜🎜🎜

                読み取りディレクトリ

                🎜 ページ ディレクトリの読み取りを容易にするには、glob が使用されています。 メソッドを拡張します。 🎜rrreee🎜依存関係をインストールした後、build/utils.js にメソッドを追加します🎜rrreee

                構成の変更

                build/webpack.base.conf.js

                rrreee

                build/webpack.base.prod.conf.js

                🎜元の HtmlWebpackPlugin 関連の構成を削除し、ファイルの末尾の前に関連する構成をスキャンして追加します。 🎜rrreee

                config/index.js

                🎜ここでは出力アドレスが設定されていないため、以前の削除は影響しません。ただし、ディレクトリ構造を調整した後は、ページ内に静的リソースをロードするためのパスも調整する必要があります。 🎜rrreee

                ビルドとプレビュー

                rrreee🎜 構築が完了したら、ブラウザを直接使用して dist ディレクトリにある html ファイルを開いてプレビューします。効果。 🎜🎜概要🎜🎜 以下に、vue-cli を使用してマルチページ アプリケーションを開発する際のいくつかの重要なポイントを簡単にまとめます。 🎜
                  🎜🎜複数のエントリ🎜🎜🎜🎜複数の HtmlWebpackPlugin🎜🎜🎜🎜静的リソースのパス🎜🎜🎜🎜この記事で紹介されている構成は、すべての開発シナリオに適用できる必要があります。より多くの詳細を最適化するには、実際の開発において継続的な練習が必要です。 🎜🎜関連する推奨事項: 🎜🎜🎜vue は複数ページのアプリケーションを構築するサンプル コードの共有 🎜🎜🎜🎜 単一ページから複数のページへのサンプル コードを作成する Vue-cli メソッド 🎜🎜🎜🎜vue cli の再構築 マルチページ スキャフォールディングのサンプル共有 🎜🎜 🎜🎜🎜🎜🎜🎜

以上がvue-cli を使用して複数ページのアプリケーションを開発する簡単な例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

開発環境におけるPythonとJavaScriptの両方の選択が重要です。 1)Pythonの開発環境には、Pycharm、Jupyternotebook、Anacondaが含まれます。これらは、データサイエンスと迅速なプロトタイピングに適しています。 2)JavaScriptの開発環境には、フロントエンドおよびバックエンド開発に適したnode.js、vscode、およびwebpackが含まれます。プロジェクトのニーズに応じて適切なツールを選択すると、開発効率とプロジェクトの成功率が向上する可能性があります。

JavaScriptはCで書かれていますか?証拠を調べるJavaScriptはCで書かれていますか?証拠を調べるApr 25, 2025 am 12:15 AM

はい、JavaScriptのエンジンコアはCで記述されています。1)C言語は、JavaScriptエンジンの開発に適した効率的なパフォーマンスと基礎となる制御を提供します。 2)V8エンジンを例にとると、そのコアはCで記述され、Cの効率とオブジェクト指向の特性を組み合わせて書かれています。3)JavaScriptエンジンの作業原理には、解析、コンパイル、実行が含まれ、C言語はこれらのプロセスで重要な役割を果たします。

JavaScriptの役割:WebをインタラクティブでダイナミックにするJavaScriptの役割:WebをインタラクティブでダイナミックにするApr 24, 2025 am 12:12 AM

JavaScriptは、Webページのインタラクティブ性とダイナミズムを向上させるため、現代のWebサイトの中心にあります。 1)ページを更新せずにコンテンツを変更できます。2)Domapiを介してWebページを操作する、3)アニメーションやドラッグアンドドロップなどの複雑なインタラクティブ効果、4)ユーザーエクスペリエンスを改善するためのパフォーマンスとベストプラクティスを最適化します。

CおよびJavaScript:接続が説明しましたCおよびJavaScript:接続が説明しましたApr 23, 2025 am 12:07 AM

CおよびJavaScriptは、WebAssemblyを介して相互運用性を実現します。 1)CコードはWebAssemblyモジュールにコンパイルされ、JavaScript環境に導入され、コンピューティングパワーが強化されます。 2)ゲーム開発では、Cは物理エンジンとグラフィックスレンダリングを処理し、JavaScriptはゲームロジックとユーザーインターフェイスを担当します。

Webサイトからアプリまで:JavaScriptの多様なアプリケーションWebサイトからアプリまで:JavaScriptの多様なアプリケーションApr 22, 2025 am 12:02 AM

JavaScriptは、Webサイト、モバイルアプリケーション、デスクトップアプリケーション、サーバー側のプログラミングで広く使用されています。 1)Webサイト開発では、JavaScriptはHTMLおよびCSSと一緒にDOMを運用して、JQueryやReactなどのフレームワークをサポートします。 2)ReactNativeおよびIonicを通じて、JavaScriptはクロスプラットフォームモバイルアプリケーションを開発するために使用されます。 3)電子フレームワークにより、JavaScriptはデスクトップアプリケーションを構築できます。 4)node.jsを使用すると、JavaScriptがサーバー側で実行され、高い並行リクエストをサポートします。

Python vs. JavaScript:ユースケースとアプリケーションと比較されますPython vs. JavaScript:ユースケースとアプリケーションと比較されますApr 21, 2025 am 12:01 AM

Pythonはデータサイエンスと自動化により適していますが、JavaScriptはフロントエンドとフルスタックの開発により適しています。 1. Pythonは、データ処理とモデリングのためにNumpyやPandasなどのライブラリを使用して、データサイエンスと機械学習でうまく機能します。 2。Pythonは、自動化とスクリプトにおいて簡潔で効率的です。 3. JavaScriptはフロントエンド開発に不可欠であり、動的なWebページと単一ページアプリケーションの構築に使用されます。 4. JavaScriptは、node.jsを通じてバックエンド開発において役割を果たし、フルスタック開発をサポートします。

JavaScript通訳者とコンパイラにおけるC/Cの役割JavaScript通訳者とコンパイラにおけるC/Cの役割Apr 20, 2025 am 12:01 AM

CとCは、主に通訳者とJITコンパイラを実装するために使用されるJavaScriptエンジンで重要な役割を果たします。 1)cは、JavaScriptソースコードを解析し、抽象的な構文ツリーを生成するために使用されます。 2)Cは、Bytecodeの生成と実行を担当します。 3)Cは、JITコンパイラを実装し、実行時にホットスポットコードを最適化およびコンパイルし、JavaScriptの実行効率を大幅に改善します。

JavaScript in Action:実際の例とプロジェクトJavaScript in Action:実際の例とプロジェクトApr 19, 2025 am 12:13 AM

現実世界でのJavaScriptのアプリケーションには、フロントエンドとバックエンドの開発が含まれます。 1)DOM操作とイベント処理を含むTODOリストアプリケーションを構築して、フロントエンドアプリケーションを表示します。 2)node.jsを介してRestfulapiを構築し、バックエンドアプリケーションをデモンストレーションします。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター