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 相关文章推荐
JavaScript对象链式操作代码(jquery)
Jul 04 Javascript
深入理解JavaScript作用域和作用域链
Oct 21 Javascript
Jquery修改页面标题title其它JS失效的解决方法
Oct 31 Javascript
学习JavaScript事件流和事件处理程序
Jan 25 Javascript
jquery编写日期选择器
Mar 16 Javascript
element-ui中select组件绑定值改变,触发change事件方法
Aug 24 Javascript
基于Vue 2.0 监听文本框内容变化及ref的使用说明介绍
Aug 24 Javascript
使用微信小程序开发弹出框应用实例详解
Oct 18 Javascript
如何进行微信公众号开发的本地调试的方法
Jun 16 Javascript
node.js文件操作系统实例详解
Nov 05 Javascript
基于vue实现探探滑动组件功能
May 29 Javascript
详解element-ui 表单校验 Rules 配置 常用黑科技
Jul 11 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利用MySQL保存session的实现思路及示例代码
2014/09/09 PHP
解决 firefox 不支持 document.all的方法
2007/03/12 Javascript
JavaScript 学习笔记之一jQuery写法图片等比缩放以及预加载
2012/06/28 Javascript
用按钮控制iframe显示的网页实现方法
2013/02/04 Javascript
javascript对下拉列表框(select)的操作实例讲解
2013/11/29 Javascript
js判断数据类型如判断是否为数组是否为字符串等等
2014/01/15 Javascript
Jquery Ajax解析XML数据(同步及异步调用)简单实例
2014/02/12 Javascript
nodejs的10个性能优化技巧
2014/07/15 NodeJs
JavaScript中的console.trace()函数介绍
2014/12/29 Javascript
jQuery+ajax实现滚动到页面底部自动加载图文列表效果(类似图片懒加载)
2016/06/07 Javascript
Angular 理解module和injector,即依赖注入
2016/09/07 Javascript
JavaScript正则表达式exec/g实现多次循环用法示例
2017/01/17 Javascript
微信小程序删除处理详解
2017/08/16 Javascript
SVG动画vivus.js库使用小结(实例代码)
2017/09/14 Javascript
Vue-Access-Control 前端用户权限控制解决方案
2017/12/01 Javascript
解决angular2 获取到的数据无法实时更新的问题
2018/08/31 Javascript
js实现文件上传功能 后台使用MultipartFile
2018/09/08 Javascript
原生JS实现简单的无缝自动轮播效果
2018/09/26 Javascript
vue设置导航栏、侧边栏为公共页面的例子
2019/11/01 Javascript
element 中 el-menu 组件的无限极循环思路代码详解
2020/04/26 Javascript
[55:18]Liquid vs Chaos 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
python实现对一个完整url进行分割的方法
2015/04/29 Python
Python实现自动登录百度空间的方法
2017/06/10 Python
Python使用pydub库对mp3与wav格式进行互转的方法
2019/01/10 Python
Python实现的插入排序,冒泡排序,快速排序,选择排序算法示例
2019/05/04 Python
Python tkinter实现图片标注功能(完整代码)
2019/12/08 Python
Python MySQL 日期时间格式化作为参数的操作
2020/03/02 Python
HTML5微信播放全屏问题的解决方法
2017/03/09 HTML / CSS
绘画设计学生的个人自我评价
2013/09/20 职场文书
找工作最新求职信
2013/12/22 职场文书
会展策划与管理专业大学生职业生涯规划
2014/02/07 职场文书
电工工作职责范本
2014/02/22 职场文书
2014年人事专员工作总结
2014/11/19 职场文书
法定代表人证明书
2014/11/28 职场文书
人民调解协议书
2016/03/21 职场文书
排查MySQL生产环境索引没有效果
2022/04/11 MySQL