vue 如何从单页应用改造成多页应用


Posted in Javascript onOctober 23, 2020

最近接到这样一个需求,将之前的三个项目合并成一个,并且要做成后台可配置化,前端动态引入组件的模板化框架。
听起来是不是很拗口。。。我自己当时都蒙了。
简单分析下需求,就是,项目A/B/C的内容是交叉的,有的页面不同,有的页面和组件是公用的,例如A项目多了个人中心及其里面所有内容(最全的一个项目,但是是放在微信中的,需要获取微信授权),B项目是通用版的项目(也就是说可以放在微信,也可以放在app内,不需要获取授权之类的。),C项目是A/B项目中共有的一个页面功能抽取出来了。
所以有的时候比如说这块功能需要调整,那么就得A/B/C三个项目关于这块的功能与页面也要一起调整。
动态化组件的意思就是,D页面由组件1234按照这样的顺序排列构成,同时D页面也供机构5、6、7共同使用,但是机构6突然想要2134这样的顺序,机构7又想要4132这样的顺序。代码依旧是一套,而不是重新拉个分支,然后这个分支将D页面改成2134给机构6,再拉个分支将D页面改成4132给机构7。这样做会增加服务器的压力,每次机构有定制化需求就重新拉分支的话,机构很多的话,容量会不够的。
(好像篇幅有点长,,扯得有点多了)

关于动态组件

这一块简单说一下,如果有不懂的,可以留言,我会把我知道的说出来,我这一块做的主要是<components :is="xxx">配合vuex,来做的。
前端页面改成上述模式,具体的组件排列顺序由后台传过来,比如说请求接口的时候,告诉它这是在D页面,并且把相应的机构号6传过去,后台传给我一个组件数组,moduleList:['2', '1', '3', '4'],然后我前端的<components :is="item" v-for="(item, index) in moduleList" :key="index">会按照moduleList里的组件顺序来动态渲染组件,之前一些父子组件传数据,在这里就变得不太适用了,所以这里的数据改用vuex存储。考虑到vuex在刷新数据丢失的问题,部分比较重要的,不想重新请求的,改用sessionStorage存储。

关于多入口多出口

其实就是最开始的项目入口是App.vuemain.js,打包出来的出入口是index.html,然后现在增加了两个,我这边是增加了genneral.js和genneral.html以及single.jssingle.html

1.首先要更改vue-cli生成的webpack里的参数,声明一下我这个版本的webpack版本还是2.6.x的,比较老了,现在应该都到4.x.x了吧。

vue 如何从单页应用改造成多页应用

PS:路由和store记得要各自独立,因为我这里的vuex很少只涉及一两个模块。并且仅仅是传递数据之类的,所以这里没有做成独立的。

2.修改build/webpack.base.conf.js

vue 如何从单页应用改造成多页应用

3.修改 build/webpack.dev.conf.js

vue 如何从单页应用改造成多页应用

4.修改 build/webpack.prod.conf.js

vue 如何从单页应用改造成多页应用

vue 如何从单页应用改造成多页应用

5.修改 config/index.js

vue 如何从单页应用改造成多页应用

理一下对应关系

main.js ==> App.vue ==> router/index.js A项目
general.js ==> general.vue ==> router/general.js B项目
single.js ==> single.vue ==> router/single.js C项目

部署的时候分三个不同的url

xxxxx/index.html对应A项目
xxxxx/general.html 对应B项目
xxxxx/single.html对应C项目

至于页面中的差异,我是通过v-if来控制,A项目的D页面是否有顶部tab,B项目的D页面是否有底部footer
因为这些页面大致是一样,仅有部分微调。所以改成用v-if来控制。

写了一个demo,方便大家看,仅仅是改了webpack的配置而已,戳这里

以上就是vue 如何从单页应用改造成多页应用的详细内容,更多关于vue 单页改多页的资料请关注三水点靠木其它相关文章!

Javascript 相关文章推荐
用js实现的一个Flash滚动轮换显示图片代码生成器
Mar 14 Javascript
javascript 原型模式实现OOP的再研究
Apr 09 Javascript
jQuery powerFloat万能浮动层下拉层插件使用介绍
Dec 27 Javascript
jQuery EasyUI API 中文文档 - ComboTree组合树
Oct 11 Javascript
node.js中的fs.renameSync方法使用说明
Dec 16 Javascript
jQuery trigger()方法用法介绍
Jan 13 Javascript
jQuery实现鼠标划过展示大图的方法
Mar 09 Javascript
关于JavaScript的变量的数据类型的判断方法
Aug 14 Javascript
值得分享和收藏的Bootstrap学习教程
May 12 Javascript
详解JavaScript中|单竖杠运算符的使用方法
May 23 Javascript
laydate.js日期时间选择插件
Jan 04 Javascript
原生js实现可拖拽效果
Feb 28 Javascript
在vue中获取wangeditor的html和text的操作
Oct 23 #Javascript
jquery实现异步文件上传ajaxfileupload.js
Oct 23 #jQuery
vue项目配置同一局域网可使用ip访问的操作
Oct 23 #Javascript
Vue表单提交点击事件只允许点击一次的实例
Oct 23 #Javascript
利用PHP实现递归删除链表元素的方法示例
Oct 23 #Javascript
如何在面试中手写出javascript节流和防抖函数
Oct 22 #Javascript
如何通过Proxy实现JSBridge模块化封装
Oct 22 #Javascript
You might like
PHP分页效率终结版(推荐)
2013/07/01 PHP
将酷狗krc歌词解析并转换为lrc歌词php源码
2014/06/20 PHP
详解PHP中mb_strpos的使用
2018/02/04 PHP
TP - 比RBAC更好的权限认证方式(Auth类认证)
2021/03/09 PHP
CL vs ForZe BO5 第一场 2.13
2021/03/10 DOTA
jquery 圆形旋转图片滚动切换效果
2011/01/19 Javascript
javascript窗口宽高,鼠标位置,滚动高度(详细解析)
2013/11/18 Javascript
javaScript中的this示例学习详解及工作原理
2014/01/13 Javascript
JQuery each()嵌套使用小结
2014/04/18 Javascript
Javascript判断图片尺寸大小实例分析
2014/06/16 Javascript
js实现div闪烁原理及实现代码
2014/06/24 Javascript
javascript包装对象实例分析
2015/03/27 Javascript
js date 格式化
2017/02/15 Javascript
jQuery Validate 相关参数及常用的自定义验证规则
2017/03/06 Javascript
Vue 过渡实现轮播图效果
2017/03/27 Javascript
在vue中更换字体,本地存储字体非引用在线字体库的方法
2018/09/28 Javascript
node.js使用fs读取文件出错的解决方案
2019/10/23 Javascript
vue实现移动端返回顶部
2020/10/12 Javascript
Vue在H5 项目中使用融云进行实时个人单聊通讯
2020/12/14 Vue.js
[53:49]LGD vs Fnatic 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
详解Python进程间通信之命名管道
2017/08/28 Python
Python实现两个list求交集,并集,差集的方法示例
2018/08/02 Python
python集合是否可变总结
2019/06/20 Python
Python 实现数据结构-堆栈和队列的操作方法
2019/07/17 Python
python用线性回归预测股票价格的实现代码
2019/09/04 Python
使用批处理脚本自动生成并上传NuGet包(操作方法)
2019/11/19 Python
使用keras内置的模型进行图片预测实例
2020/06/17 Python
python3将变量输入的简单实例
2020/08/19 Python
eBay德国站:eBay.de
2017/09/14 全球购物
菲律宾购物网站:Lazada菲律宾
2018/04/05 全球购物
Can a struct inherit from another class? (结构体能继承类吗)
2014/07/22 面试题
介绍一下linux的文件权限
2012/02/15 面试题
出口公司经理求职简历中的自我评价
2013/10/13 职场文书
竞选班长演讲稿
2013/12/30 职场文书
2014年教育教学工作总结
2014/11/13 职场文书
玄武湖导游词
2015/02/05 职场文书