iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >vue单页面改造多页面应用详解第1/2页
  • 514
分享到

vue单页面改造多页面应用详解第1/2页

2024-04-02 19:04:59 514人浏览 泡泡鱼
摘要

单页面和多页面的区别这里就不细说了。我司业务适合多页面,许多小应用都是通过iframe整体嵌入的形式。 如果项目过于庞大,就会有很不好的体验问题。拆分多个项目的话,又会有额外的开支,

单页面和多页面的区别这里就不细说了。我司业务适合多页面,许多小应用都是通过iframe整体嵌入的形式。

  • 如果项目过于庞大,就会有很不好的体验问题。
  • 拆分多个项目的话,又会有额外的开支,如服务器资源部署等问题。

基于此改造的目标

  • 单独业务逻辑单独一个页面
  • 可实现单命令打包
  • 可单独打包

首先我们准备一个基础的项目,目录结构如下

image.png

src目录为我们平时开发的目录,dist为打包后的目录,整体结构如图

1 将当前项目改造成多页面目录

image.png

pages下为我们开发的目录文件,改造过程就是将原src下所有目录结构复制到home,index每个页面单独一份 为了提现多页面优势,这里我们选用两款ui框架,以便最后做下打包体积对比

npm i element-ui -S
npm i ant-design-Vue -S 

在home和index中分别引入

image.png

home页面类似,然后我们更改vue.config.js

module.exports = {
  publicPath: './',
  productionSourceMap: false,
  pages: { // vue cli3 自带多页面配置
    index: {
      entry: `src/pages/index/main.js`,
      template: `public/index.html`,
      filename: `index.html`
    },
    home: {
      entry: `src/pages/home/main.js`,
      template: `public/index.html`,
      filename: `home.html`
    }
  },
  devServer: {
    port: 8080
  },
  lintOnSave: false
} 

现在我们打包,看一下生成的目录结构

 File                                   Size              Gzipped

  dist\js\chunk-vendors.239e820f.js      2544.36 KiB       703.20 KiB
  dist\js\index.1716ccad.js              11.33 KiB         4.13 KiB
  dist\js\home.e4410a07.js               7.08 KiB          2.57 KiB
  dist\js\about.ca80b2fc.js              0.76 KiB          0.29 KiB
  dist\CSS\chunk-vendors.68b49edf.css    666.01 KiB        89.04 KiB
  dist\css\index.5dfa7415.css            0.45 KiB          0.28 KiB
  dist\css\home.d995708f.css             0.44 KiB          0.27 KiB

  Images and other types of assets omitted.
  Build at: 2022-05-01T12:26:06.551Z - Hash: 693bf5bdcf72896b - Time: 16240ms

 DONE  Build complete. The dist directory is ready to be deployed.
 INFO  Check out deployment instructions at https://cli.vuejs.org/guide/deployment.html 

可以看到打包出来的是混在一起的。我们下一步就是将他们拆分开,并且可配置命令单独打包 思路是循环pages下文件夹 我们找出pages下目录中带有main.js的所有文件夹名。当然我们也可以手动写死,每次增加页面的时候,我们单独维护这个数组

const pages = ['home', 'index'] // 在增加页面的时候,手动维护这个数组 

当然我们也有方法可以帮我们维护这个数组,可以在我们更新的时候省事一些

// 获取pages下文件夹
const path = require('path')
const glob = require('glob')
// 找到pages所在文件夹 hello-world\src\pages
const PATH_ENTRY = path.resolve(__dirname, '../src/pages')
// 匹配到pages路径下 main.js 的文件
// [
//   'D:/测试项目/hello-world/src/pages/home/main.js',
//   'D:/测试项目/hello-world/src/pages/index/main.js'
// ]
const entryFilePaths = glob.sync(PATH_ENTRY + 'main.js')

const buildEntries = []
entryFilePaths.forEach((filePath) => {
  // 找到对应的文件名,index  home
  const FILENAME = filePath.match(/([^/]+)\/main\.js$/)[1]
  buildEntries.push(FILENAME)
})
module.exports = {
  buildEntries
} 

buildEntries 既为我们拿到的数组

现在我们继续改造vue.config.js, 我们先通过更改package.JSON中的命令传参的形式,根据我们传递的参数,单独打包对应的page

"scripts": {
    "serve": "vue-cli-service serve",
    "build": "vue-cli-service build",
    "build:index": "vue-cli-service build index --no-clean", // 注意no-clean 不能清除文件,不然可能将文件夹下打包的其他page清理掉,如果是每次部署一个page,这就无所谓了
    "build:home": "vue-cli-service build home --no-clean",
    "build:prod": "vue-cli-service build",
    "_build": "node build/build.js",
    "lint": "vue-cli-service lint"
 } 

我们如何能拿到 传入的index 或者home参数呢 结果是process.argv这个参数中可以取到,具体可以自行搜索下 process.argv为一个数组,第一项为可执行文件的目录 第二项为当前执行的javascript文件路径 剩余的是传递的参数,就如我们传递的index 是在process.argv[3]中 现将vue.config.js改造如下

// 编译配置的多页面
const modules = {}
const isProduction = process.env.NODE_ENV === 'production'
const { buildEntries } = require('./config/getPages')

// 初始化页面参数
function initPageParams(page) {
  modules
                            
12下一页阅读全文

--结束END--

本文标题: vue单页面改造多页面应用详解第1/2页

本文链接: https://www.lsjlt.com/news/152637.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • vue单页面改造多页面应用详解第1/2页
    单页面和多页面的区别这里就不细说了。我司业务适合多页面,许多小应用都是通过iframe整体嵌入的形式。 如果项目过于庞大,就会有很不好的体验问题。拆分多个项目的话,又会有额外的开支,...
    99+
    2024-04-02
  • vue单页面怎么改造成多页面应用
    这篇文章主要介绍了vue单页面怎么改造成多页面应用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇vue单页面怎么改造成多页面应用文章都会有所收获,下面我们一起来看看吧。基于此改造的目标单独业务逻辑单独一个页面可...
    99+
    2023-07-02
  • vue单页面改造多页面应用的全过程记录
    前言 单页面和多页面的区别这里就不细说了。我司业务适合多页面,许多小应用都是通过iframe整体嵌入的形式。 如果项目过于庞大,就会有很不好的体验问题。拆分多个项目的话,又会有额外的...
    99+
    2024-04-02
  • 什么是vue单页面和多页面
    本教程操作环境:windows7系统、vue3版,DELL G3电脑。vue中什么是单页面和多页面单页:全称SPA单页面应用(SinglePage Web Application)。单页应用将所有内容放在一个页面中,从而使整个页面更加流畅。...
    99+
    2023-05-14
    Vue vue.js
  • vue单页面和多页面是什么
    本文小编为大家详细介绍“vue单页面和多页面是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“vue单页面和多页面是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。在vue中,单页面全称“SPA单页面应用”...
    99+
    2023-07-04
  • vue单页面应用部署配置详解
    目录前端构建生产版本配置Nginx服务器配置HTTPS加密连接配置缓存和压缩总结前端 Vue是一款非常流行的JavaScript框架,它提供了一套高效、灵活、易于使用的前端开发工具。...
    99+
    2023-05-16
    vue单页面部署配置 vue单页面部署
  • vue适用多页面应用吗
    本教程操作环境:windows7系统、vue3版,DELL G3电脑。我们知道vue可以快速开发web单页应用,而且官方为我们提供了自己的应用脚手架vue-cli,我们只需要下载脚手架,安装依赖后就可以启动vue应用雏形。这得益与webpa...
    99+
    2023-05-14
    Vue vue3
  • Vuepress使用vue组件实现页面改造
    目录引言前置环境使用 vue 组件安装插件配置插件创建 vue 组件使用 vue 组件引言 只是单纯的用 vuepress 写个 markdown 文档,的确会处处受限,满足不了定制...
    99+
    2024-04-02
  • Vue-cli如何创建项目从单页面到多页面
    这篇文章给大家分享的是有关Vue-cli如何创建项目从单页面到多页面的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。对于某些项目来说,单页面不能很好的满足需求,所以需要将vue-c...
    99+
    2024-04-02
  • vue多页面配置详情
    目录1、多页面的区别2、SPA 与 MPA3、Vue Cli 脚手架配置1、多页面的区别 单页应用这个概念,是随着前几年 AngularJS、React、Ember 等这些框架的出现...
    99+
    2024-04-02
  • vue怎么实现单页面应用
    本篇内容介绍了“vue怎么实现单页面应用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一:npm的安装由于新版的node.js已经集成了np...
    99+
    2023-07-04
  • vue如何构建单页面应用
    这篇文章将为大家详细讲解有关vue如何构建单页面应用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1. 为什么要 SPA?SPA: 就是俗称的单页应用(Single Pa...
    99+
    2024-04-02
  • Vue的route-view子页面调用父页面的函数详解
    目录route-view子页面调用父页面函数router-view解释下面就一一来解释一下命令视图:通常用在同时显示多个视图route-view子页面调用父页面函数 最近写项目的时候...
    99+
    2024-04-02
  • vue-cli3多页应用改造的示例分析
    这篇文章主要介绍了vue-cli3多页应用改造的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。需求一个平台P,包含产品a、b、c、d...
    99+
    2024-04-02
  • Vue TypeScript与Vue Router:强强联手,打造动态单页面应用
    Vue TypeScript与Vue Router概述 Vue TypeScript是Vue.js框架的TypeScript版本。它允许开发人员使用TypeScript来编写Vue.js组件,从而提高代码的可读性、可维护性和可重用性。V...
    99+
    2024-02-09
    Vue TypeScript Vue Router 单页面应用 SPA 动态应用 路由
  • Window.history.forward(1) 阻止页面后退详解
    当我们使用`window.history.forward(1)`方法时,它会尝试前进到历史记录中的下一个页面。这个方法的参数可以是一...
    99+
    2023-09-12
    页面后退
  • 单页面Vue页面刷新出现闪烁问题及解决
    目录分析原因: 为什么刷新会出现闪烁的问题解决方法: 使用 v-cloak 用法关于Vue刷新页面问题如何解决 provide / inject 组合分析原因: 为什么刷新...
    99+
    2024-04-02
  • uniapp是单页面应用吗
    uniapp是单页面应用吗?随着移动互联网的发展,越来越多的应用被开发出来。对于开发者来说,如何选择最适合自己的开发框架成为了一个关键的问题。近年来,uniapp因其高效、便捷、跨平台等特点逐渐被开发者所熟知和使用,而其中比较常见的问题之一...
    99+
    2023-05-22
  • Vuepress怎么使用vue组件实现页面改造
    本文小编为大家详细介绍“Vuepress怎么使用vue组件实现页面改造”,内容详细,步骤清晰,细节处理妥当,希望这篇“Vuepress怎么使用vue组件实现页面改造”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。前...
    99+
    2023-07-02
  • vue适用多页面应用怎么实现
    本文小编为大家详细介绍“vue适用多页面应用怎么实现”,内容详细,步骤清晰,细节处理妥当,希望这篇“vue适用多页面应用怎么实现”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。vue适用多页面应用。vue在工程化开...
    99+
    2023-07-04
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作