vue-cli3.0实现一个多页面应用的历奇经历记录总结


Posted in Javascript onMarch 16, 2020

本文实例讲述了vue-cli3.0实现一个多页面应用的历奇经历。分享给大家供大家参考,具体如下:

故事背景

这是在刚请完假回来,一切都在计划之中,早上一来,就接到项目经历的新的需求(这个是烂摊子,已经好几个人接手,离职),我内心是拒绝的,可最后办法,没有其他人去做,最后就落在了我头上。

接到需求,先看了需求,跟以前的比起来,改动挺大,数据结构全改了,如果在原来的基础上改,成本有点大,所以,就想着重启项目来实现。于是就使用vue的最新脚手架工具vue-cli3.0来初始化项目,但突然,一个会议又来了,项目经理,评估了工作,觉得另一个同事的工作量太大,于是又把后台的一部分功能甩给我来实现,当时内心是mmp的。

本来项目是做的是单页应用,而新分配给我的功能,页面也不多,功能也不算太复杂,就不想再单独启一个工程,就想着把这个功能,做在现有的工程里,但是呢,这是两个完全没有关联的功能,于是乎,多页面应用在脑子中呼之欲出。

于是开始了从单页面应用改造成多页面应用的过程。

一、初始化项目

使用vue3.0创建一个项目,项目默认是单页应用,目录如下:

|-node_modules
|-public
	|-favicon.ico
	|-index.html
|-src
	|-assets
	|-components
	|-store
	|-views
	|-App.vue
	|-main.js
|-.browserslistrc
|-.env.development
|-.env.production
|-.eslintrc.js
|-.gitignore
|-.prettierrc.js
|-babel.config.js
|-package.json

二、将单页应用修改成多面应用

1.(必选)在src文件下新增文件夹,每个文件夹代表一个独立的页面,文件夹里都含有App.vue,main.js,router.js文件

2.(必选)在src文件下新增配置文件vue.config.js

3.(可选)在src文件下新增文件store.js,可存储数据,被每个独立页面都可取到

4.(可选)删除原先src文件下的App.vue,main.js文件
————————————————
最终文件目录如下:

|-node_modules
|-public
	|-favicon.ico
	|-index.html
|-src
	|-api
	|-assets
	|-components
	|-store
	|-styles
	|-utils
	|-views
		|-admin
			 |-App.vue
			 |-main.js
			 |-index.vue
			 |-router.js
		|-front
			 |-App.vue
			 |-main.js
			 |-index.vue
			 |-router.js
|-.browserslistrc
|-.env.development
|-.env.production
|-.eslintrc.js
|-.gitignore
|-.prettierrc.js
|-babel.config.js
|-package.json
|-vue.config.js

三、配置vue.config.js

在该文件下添加每个页面的入口,出口,模板文件,具体配置如下:

vue-cli3.0实现一个多页面应用的历奇经历记录总结

配置好后,直接通过npm run serve启动项目,发现一切正常,于是,就开始愉快地编码,打开浏览器:http://192.168.0.28:8080/front,看效果:

vue-cli3.0实现一个多页面应用的历奇经历记录总结

一切都很完美,于是开始打包,熟练地在命令行敲下 npm run build , 看着进度条一点点走着,内心也是有点小激动的,打包完成,看看打包目录:

vue-cli3.0实现一个多页面应用的历奇经历记录总结

先利用http-server启一个服务,然后去访问:http://192.168.0.28:8080/front.html
结果页面空白??? 这是什么情况?

于是,我慢慢回想,发现了有点异常,在开发环境,我访问是http://192.168.0.28:8080/front,而在http-server服务器上我访问是却是http://192.168.0.28:8080/front.html。于是我将http-server上的地址改为http://192.168.0.28:8080/front, 结果却是404.后来一想,这应该是vue路由的模式为history导致,于是尝试去改为hash, 发现也并不起作用,后来看文档,发现vue-cli3.0开发多页面应用,默认为history模式。怎么办呢,于是又想着从路由着手,将routes中的path改为xxx.html,实现代码如下:

vue-cli3.0实现一个多页面应用的历奇经历记录总结

这下再通过http://192.168.0.28:8080/front.html去访问,可以了,哈哈,内心有点小开心,然后将打包后的代码上传,提交给后台同学,让其去集成。一集成,又出问题啦,页面又空白啦,一开始脑子里想,是不是publicPath不对呀,但一看也没问题,我用的是相对路径,请求也都发了,就是空白,后来,后台的同学说,将项目部署在根目录下,就可以访问,我一听,想可能是路径问题,于是科在路由中加入了base选项,代码如下:

vue-cli3.0实现一个多页面应用的历奇经历记录总结
再打包,给后台同学集成,终于大功告成,通过这次经历,也算收获颇多,故记录下来,以共勉!

希望本文所述对大家vue.js程序设计有所帮助。

Javascript 相关文章推荐
jscript之List Excel Color Values
Jun 13 Javascript
javascript比较两个日期相差天数的方法
Jul 23 Javascript
JavaScript 函数模式详解及示例
Sep 07 Javascript
JS 设置Cookie 有效期 检测cookie
Jun 15 Javascript
Vue-cli 使用json server在本地模拟请求数据的示例代码
Nov 02 Javascript
vue toggle做一个点击切换class(实例讲解)
Mar 13 Javascript
Angular实现模版驱动表单的自定义校验功能(密码确认为例)
May 17 Javascript
vue.js 实现评价五角星组件的实例代码
Aug 13 Javascript
通过扫小程序码实现网站登陆功能
Aug 22 Javascript
vue中全局路由守卫中替代this操作(this.$store/this.$vux)
Jul 24 Javascript
vue-以文件流-blob-的形式-下载-导出文件操作
Aug 07 Javascript
Javascript实现打鼓效果
Jan 29 Javascript
vue从零实现一个消息通知组件的方法详解
Mar 16 #Javascript
JavaScript实现动态留言板
Mar 16 #Javascript
vue中的双向数据绑定原理与常见操作技巧详解
Mar 16 #Javascript
js+canvas实现纸牌游戏
Mar 16 #Javascript
微信小程序利用button控制条件标签的变量问题
Mar 15 #Javascript
JS apply用法总结和使用场景实例分析
Mar 14 #Javascript
javascript事件循环event loop的简单模型解释与应用分析
Mar 14 #Javascript
You might like
PHP n个不重复的随机数生成代码
2009/06/23 PHP
php中大括号作用介绍
2012/03/22 PHP
Ajax+PHP快速上手及简单应用说明
2013/07/24 PHP
PHP错误和异常处理功能模块示例
2016/11/12 PHP
Add Formatted Data to a Spreadsheet
2007/06/12 Javascript
jQuery获取注册信息并提示实现代码
2013/04/21 Javascript
浅析Javascript中“==”与“===”的区别
2014/12/23 Javascript
浅谈jQuery操作类数组的工具方法
2016/12/23 Javascript
浅谈Angular.js中使用$watch监听模型变化
2017/01/10 Javascript
angular forEach方法遍历源码解读
2017/01/25 Javascript
在 Angular 中实现搜索关键字高亮示例
2017/03/21 Javascript
JavaScript 字符串数字左补位,右补位,取固定长度,截位扩展函数代码
2017/03/25 Javascript
JS实现按钮添加背景音乐示例代码
2017/10/17 Javascript
vue实现提示保存后退出的方法
2018/03/15 Javascript
JavaScript实现数组全排列、去重及求最大值算法示例
2018/07/30 Javascript
解决vue-cli项目webpack打包后iconfont文件路径的问题
2018/09/01 Javascript
js实现简单模态框实例
2018/11/16 Javascript
layui点击弹框页面 表单请求的方法
2019/09/21 Javascript
Electron 打包问题:electron-builder 下载各种依赖出错(推荐)
2020/07/09 Javascript
用生成器来改写直接返回列表的函数方法
2017/05/25 Python
python利用smtplib实现QQ邮箱发送邮件
2020/05/20 Python
基于Pandas读取csv文件Error的总结
2018/06/15 Python
浅谈Python里面小数点精度的控制
2018/07/16 Python
python3 反射的四种基本方法解析
2019/08/26 Python
Python 导入文件过程图解
2019/10/15 Python
Iconfont(矢量图标)+iconmoon(图标svg互转)配合javascript实现社交分享系统
2020/04/21 Python
如何完美的建立一个python项目
2020/10/09 Python
python3字符串输出常见面试题总结
2020/12/01 Python
使用python操作lmdb对数据读取的实例
2020/12/11 Python
美国知名的女性服饰品牌:LOFT(洛芙特)
2016/08/05 全球购物
捷克钓鱼用品网上商店:Parys.cz
2018/06/15 全球购物
货物运输服务质量承诺书
2014/05/29 职场文书
2014年食品安全工作总结
2014/12/04 职场文书
总结会主持词
2015/07/02 职场文书
Python实现生活常识解答机器人
2021/06/28 Python
Python MNIST手写体识别详解与试练
2021/11/07 Python