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 相关文章推荐
理解Javascript_02_理解undefined和null
Oct 11 Javascript
IE、FF、Chrome浏览器中的JS差异介绍
Aug 13 Javascript
jQuery实现页面内锚点平滑跳转特效的方法总结
May 11 Javascript
JavaScript阻止回车提交表单的方法
Dec 30 Javascript
Google 地图叠加层实例讲解
Aug 06 Javascript
JavaScript 输出显示内容(document.write、alert、innerHTML、console.log)
Dec 14 Javascript
jQuery Validate 无法验证 chosen-select元素的解决方法
May 17 jQuery
从对象列表中获取一个对象的方法,依据关键字和值
Sep 20 Javascript
Node.js学习教程之HTTP/2服务器推送【译】
Oct 31 Javascript
浅谈从React渲染流程分析Diff算法
Sep 08 Javascript
JavaScript 复制对象与Object.assign方法无法实现深复制
Nov 02 Javascript
vue数据初始化initState的实例详解
Apr 11 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
PHP5.0对象模型探索之抽象方法和抽象类
2006/09/05 PHP
PHP中HTML标签过滤技巧
2014/01/07 PHP
PHP header()函数常用方法总结
2014/04/11 PHP
yii2.0之GridView自定义按钮和链接用法
2014/12/15 PHP
PHP查询快递信息的方法
2015/03/07 PHP
PHP基于接口技术实现简单的多态应用完整实例
2017/04/26 PHP
PHP设计模式之原型设计模式原理与用法分析
2018/04/25 PHP
javascript SpiderMonkey中的函数序列化如何进行
2012/12/05 Javascript
js中cookie的添加、取值、删除示例代码
2013/10/21 Javascript
node.js中的url.parse方法使用说明
2014/12/10 Javascript
分享33个jQuery与CSS3实现的绚丽鼠标悬停效果
2014/12/15 Javascript
jQuery实现表格展开与折叠的方法
2015/05/04 Javascript
Javascript实现计算个人所得税
2015/05/10 Javascript
原生JS和JQuery动态添加、删除表格行的方法
2015/05/28 Javascript
AngularJS 视图详解及示例代码
2016/08/17 Javascript
Jquery实现上下移动和排序代码
2016/10/17 Javascript
JS简单验证上传文件类型的方法
2017/04/17 Javascript
前端图片懒加载(lazyload)的实现方法(提高用户体验)
2017/08/21 Javascript
关于JS与jQuery中的文档加载问题
2017/08/22 jQuery
从零开始搭建webpack+react开发环境的详细步骤
2018/05/18 Javascript
手把手教你写一个微信小程序(推荐)
2018/10/17 Javascript
细说Vue组件的服务器端渲染的过程
2019/05/30 Javascript
微信小程序抽奖组件的使用步骤
2021/01/11 Javascript
[01:02:17]2014 DOTA2华西杯精英邀请赛 5 24 DK VS VG
2014/05/26 DOTA
[03:12]TI9战队档案 - Virtus Pro
2019/08/20 DOTA
Python爬取国外天气预报网站的方法
2015/07/10 Python
Python二分查找详解
2015/09/13 Python
Pycharm设置utf-8自动显示方法
2019/01/17 Python
使用tqdm显示Python代码执行进度功能
2019/12/08 Python
Python 实现Serial 与STM32J进行串口通讯
2019/12/18 Python
OpenCV+Python3.5 简易手势识别的实现
2020/12/21 Python
瑞士国际航空官网:SWISS
2016/07/21 全球购物
酒鬼酒广告词
2014/03/21 职场文书
六一儿童节活动总结
2014/08/27 职场文书
绍兴鲁迅故居导游词
2015/02/09 职场文书
JS的深浅复制详细
2021/10/16 Javascript