ホームページ  >  記事  >  ウェブフロントエンド  >  Vue.js で複数ページのプロジェクトを構成する方法

Vue.js で複数ページのプロジェクトを構成する方法

小云云
小云云オリジナル
2018-03-10 15:33:422395ブラウズ

まず次のコマンドを使用して新しい 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.vueadmin.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: &#39;Admin&#39;}</script>

admin.js 中的代码如下

import Vue from &#39;vue&#39;import Admin from &#39;./Admin.vue&#39;Vue.config.productionTip = false/* eslint-disable no-new */new Vue({
  el: &#39;#admin&#39;,
  components: { Admin },
  template: &#39;<Admin/>&#39;})

上面显示页面的代码完成之后,开始进行配置工作

首先打开 build目录
webpack.base.conf.js文件的 entry 配置属性加上新的入口文件:

module.exports = {  context: path.resolve(__dirname, &#39;../&#39;),  entry: {    app: &#39;./src/main.js&#39;,    admin: &#39;./src/page/login/admin.js&#39;
  },

文件的devServer下的 rewrites添加重定向:

  devServer: {    clientLogLevel: &#39;warning&#39;,
    historyApiFallback: {
      rewrites: [
        { from: /.admin/, to: path.posix.join(config.dev.assetsPublicPath, &#39;src/indexlogin/admin.html&#39;) },        { from: /.*/, to: path.posix.join(config.dev.assetsPublicPath, &#39;index.html&#39;) },
      ],
    },

同样要在该文件中的plugins配置项内多配置一个HtmlWebpackPlugin插件,用于生成 admin.html 的入口页
同时添加 chunks ,用于指定在前面 entry对应的入口文件的别名。

  plugins: [    new webpack.DefinePlugin({      &#39;process.env&#39;: require(&#39;../config/dev.env&#39;)
    }),    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: &#39;index.html&#39;,      template: &#39;index.html&#39;,      chunks:[&#39;app&#39;],      inject: true
    }),    new HtmlWebpackPlugin({      filename: &#39;src/page/login/admin.html&#39;,      template: &#39;src/page/login/admin.html&#39;,      chunks:[&#39;admin&#39;],      inject: true
    }),

然后我们找到 config 目录,打开里面的 index.js 文件,在build属性下添加如下代码

  build: {    // Template for index.html    index: path.resolve(__dirname, &#39;../dist/index.html&#39;),
    admin: path.resolve(__dirname, &#39;../dist/src/page/login/admin.html&#39;),

以上完成所有的配置工作,在命令行重新执行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: &#39;Admin&#39;}</script>

admin.js 中的代码如下

import Vue from &#39;vue&#39;import Admin from &#39;./Admin.vue&#39;Vue.config.productionTip = false/* eslint-disable no-new */new Vue({
  el: &#39;#admin&#39;,
  components: { Admin },
  template: &#39;<Admin/>&#39;})

上面显示页面的代码完成之后,开始进行配置工作

首先打开 build目录
webpack.base.conf.js文件的 entry 配置属性加上新的入口文件:

module.exports = {  context: path.resolve(__dirname, &#39;../&#39;),  entry: {    app: &#39;./src/main.js&#39;,    admin: &#39;./src/page/login/admin.js&#39;
  },

文件的devServer下的 rewrites添加重定向:

  devServer: {    clientLogLevel: &#39;warning&#39;,
    historyApiFallback: {
      rewrites: [
        { from: /.admin/, to: path.posix.join(config.dev.assetsPublicPath, &#39;src/indexlogin/admin.html&#39;) },        { from: /.*/, to: path.posix.join(config.dev.assetsPublicPath, &#39;index.html&#39;) },
      ],
    },

同样要在该文件中的plugins配置项内多配置一个HtmlWebpackPlugin插件,用于生成 admin.html 的入口页
同时添加 chunks ,用于指定在前面 entry对应的入口文件的别名。

  plugins: [    new webpack.DefinePlugin({      &#39;process.env&#39;: require(&#39;../config/dev.env&#39;)
    }),    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: &#39;index.html&#39;,      template: &#39;index.html&#39;,      chunks:[&#39;app&#39;],      inject: true
    }),    new HtmlWebpackPlugin({      filename: &#39;src/page/login/admin.html&#39;,      template: &#39;src/page/login/admin.html&#39;,      chunks:[&#39;admin&#39;],      inject: true
    }),

然后我们找到 config 目录,打开里面的 index.js 文件,在build属性下添加如下代码

  build: {    // Template for index.html    index: path.resolve(__dirname, &#39;../dist/index.html&#39;),
    admin: path.resolve(__dirname, &#39;../dist/src/page/login/admin.html&#39;),

以上完成所有的配置工作,在命令行重新执行npm run dev

次に、対応するページを作成します表示コードのうち、

admin.html内のコードは次のとおりです

rrreee

Admin.vue内のコードは次のとおりです rrreeeadmin.jsのコードは次のとおりです

rrreee

上で表示されたページのコードを完了したら、設定作業を開始します まず build ディレクトリを開きます

webpack.base.conf.jsentry 設定プロパティに新しいエントリ ファイルを追加します/code> ファイル:

rrreee >webpack.dev.conf.jsdevServer の下にある 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.jsdevServer の下にある 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 サイトの他の関連記事を参照してください。

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