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 相关文章推荐
cnblogs TagCloud基于jquery的实现代码
Jun 11 Javascript
event.X和event.clientX的区别分析
Oct 06 Javascript
浅析jQuery对select操作小结(遍历option,操作option)
Jul 04 Javascript
对JavaScript中this指针的新理解分享
Jan 31 Javascript
JavaScript计时器示例分析
Feb 05 Javascript
js clearInterval()方法的定义和用法
Nov 11 Javascript
JavaScript中常用的验证reg
Oct 13 Javascript
jquery 正整数数字校验正则表达式
Jan 10 Javascript
JS删除数组里的某个元素方法
Feb 03 Javascript
详解如何从零开始搭建Express+Vue开发环境
Jul 17 Javascript
详解基于 Node.js 的轻量级云函数功能实现
Jul 08 Javascript
js利用递归与promise 按顺序请求数据的方法
Aug 30 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-Fcgi下PHP的执行时间设置方法
2013/08/02 PHP
PHP使用DOMDocument类生成HTML实例(包含常见标签元素)
2014/06/25 PHP
PHP实现简单计算器小程序
2020/08/28 PHP
thinkphp5.1框架中容器(Container)和门面(Facade)的实现方法分析
2019/08/05 PHP
php7 参数、整形及字符串处理机制修改实例分析
2020/05/25 PHP
javascript 获取所有id中包含某关键字的控件的实现代码
2010/11/25 Javascript
flash遮住div问题的正确解决方法
2014/02/27 Javascript
JS案例分享之金额小写转大写
2014/05/15 Javascript
Node.js中使用mongoskin操作mongoDB实例
2014/09/28 Javascript
利用CSS3在Angular中实现动画
2016/01/15 Javascript
node.js express安装及示例网站搭建方法(分享)
2016/08/22 Javascript
JavaScript使用delete删除数组元素用法示例【数组长度不变】
2017/01/17 Javascript
JS匹配日期和时间的正则表达式示例
2017/05/12 Javascript
vue项目webpack中Npm传递参数配置不同域名接口
2018/06/15 Javascript
使用json-server简单完成CRUD模拟后台数据的方法
2018/07/12 Javascript
如何使用less实现随机下雪动画详解
2019/01/02 Javascript
你或许不知道的一些npm实用技巧
2019/07/04 Javascript
[00:15]天涯墨客终极技能展示
2018/08/25 DOTA
[01:38]完美世界DOTA2联赛PWL S3 集锦第四期
2020/12/21 DOTA
在Python中操作时间之strptime()方法的使用
2020/12/30 Python
Python面向对象之继承和组合用法实例分析
2018/08/27 Python
python GUI库图形界面开发之PyQt5信号与槽机制、自定义信号基础介绍
2020/02/25 Python
自定义Django Form中choicefield下拉菜单选取数据库内容实例
2020/03/13 Python
Pytest测试框架基本使用方法详解
2020/11/25 Python
HTML5 新事件 小结
2009/07/16 HTML / CSS
HTML5 canvas实现移动端上传头像拖拽裁剪效果
2016/03/14 HTML / CSS
打印机墨盒:123Inkjets
2017/02/16 全球购物
viagogo波兰票务平台:演唱会、体育比赛、戏剧门票
2018/04/23 全球购物
化学实验员岗位职责
2013/12/28 职场文书
优秀少先队大队辅导员事迹材料
2014/05/04 职场文书
选秀节目策划方案
2014/06/06 职场文书
小学运动会演讲稿
2014/08/25 职场文书
2014年小学国庆节活动方案
2014/09/16 职场文书
2014院党委领导班子对照检查材料思想汇报
2014/09/24 职场文书
解决Golang中goroutine执行速度的问题
2021/05/02 Golang
详细分析PHP7与PHP5区别
2021/06/26 PHP