当前位置:Gxlcms > JavaScript > Vue.js中多页面项目如何配置

Vue.js中多页面项目如何配置

时间:2021-07-01 10:21:17 帮助过:14人阅读

首先使用如下的命令创建一个新的 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'
  },

webpack.dev.conf.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'
  },

webpack.dev.conf.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-cli开发多页面应用的简单示例

Vue-cli创建单页面到多页面的方法实例代码

如何将 Vue-cli 改造成支持多页面的history模式

以上就是Vue.js中多页面项目如何配置的详细内容,更多请关注Gxl网其它相关文章!

人气教程排行