首页 > web前端 > js教程 > 正文

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

小云云
发布: 2018-03-10 15:33:42
原创
2718人浏览过

首先使用如下的命令创建一个新的 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中多页面项目如何配置的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号