现在
在大或是超大项目中单页模式看不有什么优势每次修改都需要重新打包编译部署。都是全量更新。
在上古时代 jsp 模式下都是修改哪块改哪块,部署那块。不用每次全量部署更新。
为什么越发展感觉越落后了呢?
未来
以后的 WEB 框架发展还是会变成什么样子?返回到到以前的模式。还是保持单页模式?
如果 WEB 与后段业务按插件或是微服务模式,使用才会加载部署不使用就停止不是更节省资源么?效率更高么?
为什么现在的前端主流都是单页模式?
考虑开发大或超大形式系统如 ERP 类似超级多的功能模块为什么都会选择模块化模式?而很少有单页模式去解决呢?
如果有一套前后端都能够灵活配置扩展的前端分离微微服务框架模式不是更好么?
为什么现在主流市场没有成熟的产品框架呢?返到是前后端越发展越撕裂感。学的东西多东西真的会调整开发效率或是运维效率能有多少呢?
![]() |
1
20 小时 24 分钟前 得益于网速以及客户端性能的大幅提升,开发效率和开发体验要大于你说的节省资源
|
![]() |
2
20 小时 23 分钟前 单页模式体验更好吧,不用进行一些小操作就要触发整个页面刷新
|
![]() |
3
20 小时 22 分钟前 国内是这样的,国外比较流行 next.js 与 remix.js 可以看成不是单页模式
|
![]() |
5
20 小时 15 分钟前 @meteora0tkvo 这个应该不是单页模式的主要优点, jsp+Ajax 一样能实现局部更新而不刷新整个页面. 我觉得主要还是 vue 这些框架和打包工具流行后才逐渐兴起的, 还有就是 Android 套 H5 的开发模式,促进了单页面的发展
|
![]() |
6
20 小时 14 分钟前 超大型的前端项目也可以按模块部署编译的。
只是现在绝大部分的前端搞不来,而且需求场景比较少。 而且很多超大型项目其实都可以拆分成多个独立的大项目。 |
![]() |
7
20 小时 12 分钟前 天下大势,合久必分,分久必合。
|
![]() |
8
20 小时 10 分钟前 单页面局部刷新体验更好点
|
![]() |
9
20 小时 9 分钟前 via iPhone nextjs 就不是单页,而且越来越多人用
|
![]() |
10
20 小时 7 分钟前 单页模式最大的原因就是为了兼容 APP ,让手机端的网页体验能接近 APP
|
![]() |
11
20 小时 6 分钟前 > 返回到到以前的模式。还是保持单页模式?
个人拙见,返回是不可能的,现在的开发模式就是为了解决以前的问题。那么现在遇到新的问题,应该去解决新的问题,而不是回到以前去面对以前的问题。 SPA 和 MPA 有各自的适用场景。 |
![]() |
12
20 小时 4 分钟前 SPA 适用于类 App 的开发,典型的就是各种 PWA ,MPA 适用于 App 端内嵌的 Web 页面开发
|
![]() |
13
20 小时 3 分钟前 全量编译:CI 太慢可以加缓存,大多数项目时间没要求
全量部署:增量不好回滚,还有最关键的可能导致线上代码和预期不一致,虽然全量费时间但是稳定 以上都是运维角度的一些经验吧 |
![]() |
14
20 小时 1 分钟前 先说是不是,再说为什么。
是不是?不是。 再说为什么,因为这点损耗不是你需要担心的,容器有没有损耗? k8s 有没有损耗?服务网格有没有损耗? CI/CD 是不是成本呢? |
![]() |
15
19 小时 49 分钟前 [现在]
1 、前端也有微前端,虽然不完美,但是能够解决一定的问题 2 、jsp 、php ,正规生产环境不可能让你替换单个文件,都是按版本进行整体应用更新。如果是开发环境、那么用什么方式都没差。 3 、jsp 、php 等开发逻辑与前端开发生态存在断层,js 开发人员需要学习 jsp 、php ,导致不必要的上手成本。 4 、前端领域也有“jsp”,那就是 next.js 、nuxt.js 、analog.js 等前端全栈框架,开发体验已经可以替代传统 jsp 、php 。 [未来] 不管那种模式,前端的生态都是可以复用的、共享的,你看看 jsp 、php 是不是就显得单一了许多 |
![]() |
16
19 小时 48 分钟前 大项目需要自定义编译颗粒度,一个小的改动不至于影响所有已编译文件。
|
![]() |
17
19 小时 36 分钟前 个人粗鄙的见解就是,单页面的形式,就是把页面和后端接口 解耦了,前后端更灵活
而且开发体验更好,而且越是大型的项目,相对维护成本越低 |
![]() |
18
19 小时 36 分钟前 via Android 单页模式的优势是客户端状态好维护。在服务器维护简直就是吃屎。
|
![]() |
19
19 小时 32 分钟前 多页模式怎么维护状态,虽然有些方法,简直灾难
|
![]() |
20
19 小时 29 分钟前 连 youtube 都能单页,你们那点应用算个什么
|
![]() |
21
19 小时 29 分钟前 以前讲 B/S 和 C/S, 大单页是为了达到 C/S 效果的 B/S 应用
|
![]() |
22
19 小时 27 分钟前 emmm ,差版本了,23 年已经在讨论 MPA 比 SPA 好了: https://dev.to/begin/why-does-everyone-suddenly-hate-single-page-apps-cj5
|
![]() |
23
19 小时 19 分钟前 单页面程序可以类比桌面应用程序,或者叫胖客户端。你说的那种,是瘦客户端模式。
我是不知道为什么你会觉得「全量部署更新」是一种落后。 大型或者超大型系统现在也在往单页上靠拢。你问为什么很少有单页模式解决问题?因为企业级项目更新速度更慢,从古老技术切换到新技术需要大量的时间。我司算是企业级项目开发排前列的厂,今年刚刚在开始淘汰 Java 8 ,以及前端在从古老的 HTML 网页架构往现代化的 MVVM 架构迁移。 |
![]() |
24
19 小时 16 分钟前 ERP 这种 单页模式用着比多页舒服吧,还可以增加页面缓存等
|
![]() |
25
19 小时 14 分钟前 够用就好。。也说明 web 只有 landing 的作用了,核心价值还是得靠 API 提供的数据
|
![]() |
26
19 小时 6 分钟前 via Android 这是开发工具问题 不是单页问题 事实上你用旧技术也可以写单页 可以整成只替换少数文件的单页 如果你写的够灵活 自己刻可以这样做
但你这样做保密性就不足 外加前端是透明的 现在整的编译再编译然后混淆加密或者执行档都是差不多原因 第一提高被反向成本 第二刻意提高从业门槛 jsp 个人觉得远不如 php 都是可见不用说 相比动态性不足的 php 因为动态语言的关系除了以上保密方法还可以整花活 只不过很少人想到 所以很喜欢写脚本类的 shell 类的更是 因为太动态 |
![]() |
27
19 小时 2 分钟前 @bruce0 如果是做频繁地 fetch 无刷新更新页面数据,用 Vue React 这些框架有助于加快开发速度,降低开发成本,所以企业更倾向于做单页了(虽然在网页性能上不如传统的 html 开发的好)
|
![]() |
28
18 小时 0 分钟前 via Android csr ssr ssg 都有,不过目前确实以 csr 为主。
|
![]() |
29
18 小时 0 分钟前 前端也可以做增量更新呀,我就曾经使用 git diff 做增量更新,但是 webpack5+esbuild 出来以后增量和全量其实没有很大的区别,没有必要去单独维护一个工程
|
![]() |
30
17 小时 57 分钟前 把浏览器当成跨平台操作系统,WEB 当成 APP 就理解单页面模式了
|
![]() |
31
17 小时 39 分钟前 @MagicalCarl 实际上也是单页模式
|
![]() |
32
17 小时 39 分钟前 @MonikaCeng 也是单页
|
![]() |
33
17 小时 35 分钟前 点一下就刷新页面你觉得体验很好?
|
![]() |
34
17 小时 31 分钟前 一个重要的特性是前端 hash 模式,路由是前端自行控制, 不经过后端, 这点还是蛮重要的, 有效降低后端压力提升体验
|
![]() |
35
17 小时 26 分钟前 via Android 1. 首先,并非每次都全量更新,大部分打包工具都有手动 chunk 的功能,如果项目确实太大可以把不同模块分到不同 chunk 里面,只更新变化的部分,这是很常见的优化手段
2. 为什么要打包?因为有收益啊,传统方式在加载时会下载大量文件,产生大量请求,打包完之后请求数量减少,客户端也轻松,服务器也轻松 3. 单页模式是为了在导航时不需要重新加载页面上一直存在的部件(例如顶栏侧栏等,以及一些博客的 live2d 看版娘),页面切换过渡更顺畅,也减少网络请求 4. 后端业务插件按需启停就别想了,管理启停的成本高于持续运行的成本 5. 不太理解你说的“前后端发展撕裂”,前后端本来就不太应该“融合”,只是曾经前端技术受限制,由服务器处理一切罢了。前后端分离、解耦,通过统一的 API 交换数据,便于维护和扩展,这是符合工程原则的。例如某天需要开发 App 端,就可以很方便地接入 |
![]() |
36
17 小时 23 分钟前 我的感觉是受到手机应用的影响。
|
![]() |
37
16 小时 54 分钟前 via iPhone |
![]() |
38
16 小时 21 分钟前 现在大家为了 SEO 又搞 SSR 了,历史是个轮回。。。
|
![]() |
39
16 小时 16 分钟前 很简单,因为你不是专业前端,你不懂现代的需求和技术,所以不懂单页面的好处。
|
![]() |
40
16 小时 10 分钟前 楼主想找的是微前端吧
|
![]() |
41
15 小时 31 分钟前 @bruce0 #5 说的就是整体更新而不是局部更新,当我从一个页面跳转另一个页面时,用 js 操作刷新整个页面而非进行真实跳转导致重新加载页面,跳转新页面的速度会更快
如果没有 SPA 框架纯靠手撸实现相同效果难度就大了去了 |
![]() |
42
15 小时 24 分钟前 「开发大或超大形式系统如 ERP 类似超级多的功能模块为什么都会选择模块化模式?而很少有单页模式去解决呢?」
首先这些系统可能有很久的历史,在 SPA 出来前就进行开发了,又不是未来战士没法选择未来的技术栈 还有就是 B 端系统(相比 C 端)没那么在意性能,不会不计代价地把性能抠到机制,C 端那是宁可用 rust 开发编译工具,也不会为了开发人员的体验去牺牲那一点点的性能,性能高一点点转化率数据就能好一点点(尤其是国内网民数量也多,那些大厂产品用户量都很多,即使是一点点的相对数据提升,换算成绝对数据,量也是很大的) |
![]() |
43
15 小时 12 分钟前 想来 OP 不是专业画 UI 的,我来尝试回答一下:
为什么现在主流的页面组织结构都是单页模式? 因为单页模式下网页切换速度更快、切换过程更丝滑。网页切换速度快的原因是因为单页模式下页面切换是基于浏览器路由而不是服务端路由,而且浏览器无需全页渲染切换后的页面,此时 UX 更好。 为什么在大或是超大项目中单页模式看不有什么优势? 看不到不是没有,单页事实上就是比多页切换快,无论何种规模。但我感觉 OP 想问的应该不是这个,或许是为什么(超)大型网站多数不采用单页应用组织方式? 为什么单页应用无法增量更新? 实际上都是增量更新的,大部分项目都是全量构建、增量部署。 未来的发展会是什么样子? 无法预测、但未来也不是凭空产生的,都是在目前的基础上迭代发展来的。 |
![]() |
44
15 小时 5 分钟前 谁说的单页每次都是全量更新?如果在意,你打包的时候不按照模块做拆包优化吗?
|
![]() |
45
15 小时 4 分钟前 跨页面管理状态是非常麻烦的事情。
页面跳转,意味着那些 polyfill 、框架、组件库、样式、登录状态又得重新初始化,那些公共界面比如菜单、导航栏之类又得重新生成。 |
![]() |
46
14 小时 14 分钟前 因为现在,太多的终端设备,不同大的屏幕,单页程序完美解决了,现代浏览器的方案.
|