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 相关文章推荐
有关于eclipse配置spket需要注意的一些地方
Apr 07 Javascript
jQuery自动切换/点击切换选项卡效果的小例子
Aug 12 Javascript
JavaScript日期时间与时间戳的转换函数分享
Jan 31 Javascript
JavaScript获取两个数组交集的方法
Jun 09 Javascript
jquery实现点击弹出可放大居中及关闭的对话框(附demo源码下载)
May 10 Javascript
JavaScript中闭包的写法和作用详解
Jun 29 Javascript
AngularJS指令详解及示例代码
Aug 16 Javascript
JavaScript重定向URL参数的两种方法小结
Oct 19 Javascript
jQuery中checkbox反复调用attr('checked', true/false)只有第一次生效的解决方法
Nov 16 Javascript
微信小程序 this和that详解及简单实例
Feb 13 Javascript
Vue-router 中hash模式和history模式的区别
Jul 24 Javascript
JS实现获取自定义属性data值的方法示例
Dec 19 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的SQL注入过程分析
2012/01/06 PHP
用PHP编写和读取XML的几种方式
2013/01/12 PHP
PHP编码规范的深入探讨
2013/06/06 PHP
php用正则表达式匹配中文实例详解
2013/11/06 PHP
php面向对象中static静态属性和静态方法的调用
2015/02/08 PHP
php防止CC攻击代码 php防止网页频繁刷新
2015/12/21 PHP
Laravel框架查询构造器 CURD操作示例
2019/09/04 PHP
laravel框架中表单请求类型和CSRF防护实例分析
2019/11/23 PHP
Thinkphp集成抖音SDK的实现方法
2020/04/28 PHP
插件:检测javascript的内存泄漏
2007/03/04 Javascript
JQuery困惑—包装集 DOM节点
2009/10/16 Javascript
使用firebug进行调试javascript的示例
2013/12/16 Javascript
ParseInt函数参数设置介绍
2014/01/02 Javascript
JQuery实现鼠标移动图片显示描述层的方法
2015/06/25 Javascript
推荐阅读的js快速判断IE浏览器(兼容IE10与IE11)
2015/12/13 Javascript
AngularJS入门教程之控制器详解
2016/07/27 Javascript
jQuery实用小技巧_输入框文字获取和失去焦点的简单实例
2016/08/25 Javascript
简单谈谈JS数组中的indexOf方法
2016/10/13 Javascript
详解三种方式解决vue中v-html元素中标签样式
2018/11/22 Javascript
小程序实现多列选择器
2019/02/15 Javascript
jQuery事件多次绑定与解绑问题实例分析
2019/02/19 jQuery
Python使用Scrapy爬虫框架全站爬取图片并保存本地的实现代码
2018/03/04 Python
Python中一行和多行import模块问题
2018/04/01 Python
Python实现求一个集合所有子集的示例
2018/05/04 Python
pycharm的console输入实现换行的方法
2019/01/16 Python
Python关键字及可变参数*args,**kw原理解析
2020/04/04 Python
python利用pytesseract 实现本地识别图片文字
2020/12/14 Python
CSS3 box-sizing属性
2009/04/17 HTML / CSS
孕妇装中的著名品牌:Isabella Oliver(伊莎贝拉·奥利弗)
2016/10/31 全球购物
荟萃全球保健品:维他购
2018/05/09 全球购物
vue项目实现分页效果
2021/03/24 Vue.js
项目计划书范文
2014/01/09 职场文书
优秀团队获奖感言
2014/02/19 职场文书
会计工作决心书
2014/03/11 职场文书
工程管理英文求职信
2014/03/18 职场文书
2014年工商所工作总结
2014/12/09 职场文书