ホームページ > 記事 > ウェブフロントエンド > Vue.js で複数ページのプロジェクトを構成する方法
まず次のコマンドを使用して新しい Vue.js プロジェクトを作成します
vue init webpack vue-3
VsCode を使用してプロジェクトを開いた後、コマンドラインでプロジェクトを入力し、関連する依存ライブラリをインストールしてから、プロジェクトを実行して次のコマンドを実行します
cd vue-3npm installnpm run dev
通常の状況では、ブラウザに http://localhost:8080 と入力すると、大きな V アイコンが付いたページがポップアップ表示されます。
上記の準備が完了したら、次にマルチページ プロジェクトの構成を実装します。達成される効果は次のとおりです。
ブラウザに http://localhost:8080/admin と入力します。ディスプレイ管理者ログインページにジャンプします。
プロジェクトの src ディレクトリに page/login ディレクトリを作成します
次に、ログイン ディレクトリの下に 3 つの新しいフォルダーを作成します: admin.html admin.js Admin.vue
admin.html admin.js Admin.vue
然后编写相应的页面显示代码,其中
admin.html 中的代码如下
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>管理员登录页面</title></head><body> <p id="admin"></p></body></html>
Admin.vue 中的代码如下
<template> <p id="admin"> <p>这里是管理员登录页面</p> </p></template><script>export default { name: 'Admin'}</script>
admin.js 中的代码如下
import Vue from 'vue'import Admin from './Admin.vue'Vue.config.productionTip = false/* eslint-disable no-new */new Vue({ el: '#admin', components: { Admin }, template: '<Admin/>'})
上面显示页面的代码完成之后,开始进行配置工作
首先打开 build
目录
在 webpack.base.conf.js
文件的 entry
配置属性加上新的入口文件:
module.exports = { context: path.resolve(__dirname, '../'), entry: { app: './src/main.js', admin: './src/page/login/admin.js' },
在文件的
devServer
下的 rewrites
添加重定向:
devServer: { clientLogLevel: 'warning', historyApiFallback: { rewrites: [ { from: /.admin/, to: path.posix.join(config.dev.assetsPublicPath, 'src/indexlogin/admin.html') }, { from: /.*/, to: path.posix.join(config.dev.assetsPublicPath, 'index.html') }, ], },
同样要在该文件中的plugins
配置项内多配置一个HtmlWebpackPlugin
插件,用于生成 admin.html 的入口页
同时添加 chunks
,用于指定在前面 entry
对应的入口文件的别名。
plugins: [ new webpack.DefinePlugin({ 'process.env': require('../config/dev.env') }), new webpack.HotModuleReplacementPlugin(), new webpack.NamedModulesPlugin(), // HMR shows correct file names in console on update. new webpack.NoEmitOnErrorsPlugin(), // https://github.com/ampedandwired/html-webpack-plugin new HtmlWebpackPlugin({ filename: 'index.html', template: 'index.html', chunks:['app'], inject: true }), new HtmlWebpackPlugin({ filename: 'src/page/login/admin.html', template: 'src/page/login/admin.html', chunks:['admin'], inject: true }),
然后我们找到 config
目录,打开里面的 index.js
文件,在build
属性下添加如下代码
build: { // Template for index.html index: path.resolve(__dirname, '../dist/index.html'), admin: path.resolve(__dirname, '../dist/src/page/login/admin.html'),
以上完成所有的配置工作,在命令行重新执行npm run dev
,项目启动后,在浏览器键入 http://localhost:8080/admin ,就成功的跳转到刚刚我们写的页面中去了。
首先使用如下的命令创建一个新的 Vue.js 项目
vue init webpack vue-3
使用 VsCode 打开项目之后,在命令行进入到项目中去,安装相关的依赖库,然后运行项目,执行下面的命令
cd vue-3npm installnpm run dev
在一切正常的情况下,在浏览器输入 http://localhost:8080 应该会弹出一个含有大大的 V 字图标的页面。
完成上面的准备工作之后,接下来我们就来实现多页面项目的配置,我们预期希望实现的效果如下:
在浏览器输入 http://localhost:8080/admin 就会跳转到显示 这里是管理员登录 的页面。
我们在项目的 src 目录下建立 page/login 目录
然后在 login 目录下新建三个文件夹: admin.html admin.js Admin.vue
然后编写相应的页面显示代码,其中
admin.html 中的代码如下
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>管理员登录页面</title></head><body> <p id="admin"></p></body></html>
Admin.vue 中的代码如下
<template> <p id="admin"> <p>这里是管理员登录页面</p> </p></template><script>export default { name: 'Admin'}</script>
admin.js 中的代码如下
import Vue from 'vue'import Admin from './Admin.vue'Vue.config.productionTip = false/* eslint-disable no-new */new Vue({ el: '#admin', components: { Admin }, template: '<Admin/>'})
上面显示页面的代码完成之后,开始进行配置工作
首先打开 build
目录
在 webpack.base.conf.js
文件的 entry
配置属性加上新的入口文件:
module.exports = { context: path.resolve(__dirname, '../'), entry: { app: './src/main.js', admin: './src/page/login/admin.js' },
在文件的
devServer
下的 rewrites
添加重定向:
devServer: { clientLogLevel: 'warning', historyApiFallback: { rewrites: [ { from: /.admin/, to: path.posix.join(config.dev.assetsPublicPath, 'src/indexlogin/admin.html') }, { from: /.*/, to: path.posix.join(config.dev.assetsPublicPath, 'index.html') }, ], },
同样要在该文件中的plugins
配置项内多配置一个HtmlWebpackPlugin
插件,用于生成 admin.html 的入口页
同时添加 chunks
,用于指定在前面 entry
对应的入口文件的别名。
plugins: [ new webpack.DefinePlugin({ 'process.env': require('../config/dev.env') }), new webpack.HotModuleReplacementPlugin(), new webpack.NamedModulesPlugin(), // HMR shows correct file names in console on update. new webpack.NoEmitOnErrorsPlugin(), // https://github.com/ampedandwired/html-webpack-plugin new HtmlWebpackPlugin({ filename: 'index.html', template: 'index.html', chunks:['app'], inject: true }), new HtmlWebpackPlugin({ filename: 'src/page/login/admin.html', template: 'src/page/login/admin.html', chunks:['admin'], inject: true }),
然后我们找到 config
目录,打开里面的 index.js
文件,在build
属性下添加如下代码
build: { // Template for index.html index: path.resolve(__dirname, '../dist/index.html'), admin: path.resolve(__dirname, '../dist/src/page/login/admin.html'),
以上完成所有的配置工作,在命令行重新执行npm run dev
admin.html内のコードは次のとおりです
rrreeeAdmin.vue内のコードは次のとおりです rrreeeadmin.jsのコードは次のとおりです
rrreee上で表示されたページのコードを完了したら、設定作業を開始します まず build
ディレクトリを開きます
webpack.base.conf.jsentry
設定プロパティに新しいエントリ ファイルを追加します/code> ファイル: rrreee >webpack.dev.conf.js
の devServer
の下にある rewrites
にリダイレクトを追加します ファイル: rrreee
plugins
で、設定項目にもう 1 つ HtmlWebpackPlugin
プラグインを設定します。これは、admin.html のエントリ ページを生成するために使用されます🎜同時に、chunks
を追加して、前の entry
対応するエントリ ファイルのエイリアスを指定します。 🎜rrreee🎜次に、config
ディレクトリを見つけて、その中にある index.js
ファイルを開き、build
属性の下に次のコードを追加します 🎜rrreee 🎜🎜上記 すべての構成作業を完了し、プロジェクトが開始された後、コマンドラインで npm run dev
を再実行し、ブラウザに http://localhost:8080/admin と入力します。先ほど書いたページにジャンプします。 🎜🎜まず、次のコマンドを使用して新しい Vue.js プロジェクトを作成します🎜rrreee🎜VsCode を使用してプロジェクトを開いた後、コマンドラインでプロジェクトを入力し、関連する依存ライブラリをインストールしてから、プロジェクトを実行して次のコマンドを実行します🎜rrreee 🎜 通常の状況では、ブラウザに http://localhost:8080 と入力すると、大きな V アイコンが付いたページがポップアップ表示されます。 🎜🎜🎜上記の準備が完了したら、次にマルチページ プロジェクトの構成を実装します。達成される効果は次のとおりです。 🎜🎜 ブラウザに http://localhost:8080/admin と入力します。ディスプレイ🎜管理者ログイン🎜ページにジャンプします。 🎜🎜プロジェクトの src ディレクトリに page/login ディレクトリを作成します🎜次に、ログイン ディレクトリの下に 3 つの新しいフォルダーを作成します: admin.html admin.js Admin.vue
🎜🎜次に、対応するページを作成します表示コードのうち、🎜admin.html内のコードは次のとおりです 🎜rrreee🎜Admin.vue内のコードは次のとおりです 🎜rrreee🎜admin.jsのコードは次のとおりです 🎜rrreee🎜上で表示されたページのコードを完了したら、設定作業を開始します 🎜🎜まず build
ディレクトリを開きます 🎜 webpack.base.conf.jsentry
設定プロパティに新しいエントリ ファイルを追加します/code> ファイル: 🎜rrreee🎜 >webpack.dev.conf.js
の devServer
の下にある rewrites
にリダイレクトを追加します ファイル: 🎜rrreee🎜また、このファイルの plugins
構成項目にもう 1 つ HtmlWebpackPlugin
プラグインを構成します。これは、admin.html のエントリ ページを生成するために使用されます🎜同時に、chunks
を追加して、前の entry
対応するエントリ ファイルのエイリアスを指定します。 🎜rrreee🎜次に、config
ディレクトリを見つけて、その中にある index.js
ファイルを開き、build
属性の下に次のコードを追加します 🎜rrreee 🎜🎜上記 すべての構成作業を完了し、プロジェクトが開始された後、コマンドラインで npm run dev
を再実行し、ブラウザに http://localhost:8080/admin と入力します。先ほど書いたページにジャンプします。 🎜🎜関連する推奨事項: 🎜🎜🎜複数ページのアプリケーションを開発する vue-cli の簡単な例🎜🎜🎜🎜単一ページを複数ページに作成する Vue-cli メソッドのサンプル コード🎜🎜🎜🎜Vue-cli を次のように変換する方法複数ページの履歴モードをサポートします🎜🎜以上がVue.js で複数ページのプロジェクトを構成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。