HTML优先逆袭!JS终于成熟?前端告别“框架依赖”热潮

最近前端圈有点意思,以前大家开口闭口都是React、Vue这些JS框架,好像不用框架就不算正经做前端。

HTML优先逆袭!JS终于成熟?前端告别“框架依赖”热潮

现在倒好,不少人又回头捡HTML了,说要“HTML优先,框架次之”。

说实话,这转变我一开始还没太看懂,直到帮朋友改了个网站才明白,他之前用某框架搭的博客,打开要等三秒白屏,后来换成Astro,纯HTML打底,加一点点JS交互,速度快得像换了台电脑。

HTML优先逆袭!JS终于成熟?前端告别“框架依赖”热潮

那JS到底是成熟了,还是大家终于醒了?咱们今天就聊聊这事儿。

JS框架的“甜蜜负担”:以前当神器,现在发现全是坑

早个十年,前端圈里“JS优先”的想法特别盛行,那时候SPA刚火起来,大家觉得用JS把整个页面管起来特别酷。

HTML和CSS?好多时候都被JS生成、操控,甚至给包得严严实实,本来想“这样开发效率高”,但后来发现不是那么回事。

HTML优先逆袭!JS终于成熟?前端告别“框架依赖”热潮

我之前帮一个小公司做官网,他们非要用某主流框架。

光配置打包工具就花了我大半天,又是webpack又是TreeShaking,折腾完了还得处理“水合”问题,页面加载完先白一会儿,等JS跑起来才能显示内容。

用户投诉说“打开半天没东西”,搜索引擎也抓不到内容,老板还问我“为啥别人的网站一搜就有,咱们的不行”。

老实讲,那时候我就觉得,这事儿有点跑偏了,更麻烦的是,不少开发者慢慢被逼成了半个运维。

HTML优先逆袭!JS终于成熟?前端告别“框架依赖”热潮

本来写个静态页面多简单,现在要管构建流程、处理依赖冲突,甚至得研究怎么减少JS体积。

有个做前端的朋友跟我说,他们团队为了优化一个列表页的加载速度,连续加班一周调组件懒加载,最后速度只快了0.5秒。

如此看来,咱们到底是在解决用户的问题,还是在给自己找活儿干?

后来Medium的做法给了我点启发,这个博客平台以前全是SPA架构,去年突然宣布改用HTML静态渲染,加一点点JS做交互。

HTML优先逆袭!JS终于成熟?前端告别“框架依赖”热潮

改完之后,页面加载速率提升了60%还多,服务器压力也小了。

这说明不是JS不好,是咱们把它用“过”了。

JS本来是用来增强体验的,结果现在成了必须依赖的东西,没它页面都打不开,这可不是当初发明它的初衷。

HTML优先工具的“逆袭”:不用框架,网站反而更能打

就在大家吐槽框架麻烦的时候,Astro、HTMX这些工具冒了出来。

HTML优先逆袭!JS终于成熟?前端告别“框架依赖”热潮

它们的思路特别简单:先写干净的HTML,需要交互了再加点JS。

说实话,我第一次用Astro的时候还挺怀疑,“就靠HTML能做动态页面?”结果试下来发现,真香。

Astro默认不加载任何JS,页面全是静态HTML渲染出来的。

你想加交互也可以,比如一个点击展开的列表,只给这个组件加JS就行,其他部分还是纯HTML。

HTML优先逆袭!JS终于成熟?前端告别“框架依赖”热潮

我用它搭了个个人技术博客,打开速度比之前用Vue搭的快了近两倍,而且不用管那些复杂的配置。

更惊喜的是,搜索引擎抓内容抓得特别快,没过多久就能在首页搜到我的文章。

HTMX也挺有意思,它不用写一堆JS代码,就靠HTML里的属性就能实现交互。

比如你想做个表单提交,不用写AJAX,加个hx-post属性就行,数据提交完直接把服务器返回的HTML插进去。

HTML优先逆袭!JS终于成熟?前端告别“框架依赖”热潮

有个做电商的朋友用它改了购物车功能,代码量少了一半,还没出现过之前用框架时的“提交失败”问题。

本来想觉得这些工具只是小打小闹,后来发现谷歌、Shopify这些大公司也在试。

Shopify去年把商家后台改成了“HTML优先”架构,用Qwik做局部增强。

改完之后,代码库体积减了不少,商家反映操作起来顺畅多了。

HTML优先逆袭!JS终于成熟?前端告别“框架依赖”热潮

很显然,这不是一时的跟风,而是前端圈真的在变,大家终于开始关注用户体验,而不是比谁会用的框架更复杂。

JS也没被抛弃,它只是换了个角色,以前是“啥都管”,现在是“该出手时才出手”。

比如Next.js推的ReactServerComponents,把大部分渲染工作放服务器上,客户端只加载必要的JS。

我身边不少用Next.js的开发者说,这么一改,客户端JS体积小了快一半,页面卡顿的情况也少了。

HTML优先逆袭!JS终于成熟?前端告别“框架依赖”热潮

如此看来,JS不是不行了,是终于成熟了,知道什么时候该退一步。

HTML优先能撑大项目吗?开发者得捡回老本事

不少人会问,“HTML优先”听起来挺好,但复杂的项目能用吗?比如电商网站、管理系统这些。

说实话,我之前也有这疑问,直到看了Enhance和Qwik的案例才放心。

HTML优先逆袭!JS终于成熟?前端告别“框架依赖”热潮

Enhance依托Web组件做开发,先写HTML组件,再按需加JS,有个团队用它做了个客户管理系统,几百个功能模块,运行起来照样顺畅。

Qwik更厉害,它不用“全页面水合”,用户点哪个组件才给哪个组件加载JS。

有个社交平台用它做了动态消息流,用户滑动的时候不会卡顿,之前用React做的时候总出现“划着划着卡住”的情况。

Shopify的例子更有说服力,他们的商家后台每天有几十万商家在用,功能又多又复杂。

HTML优先逆袭!JS终于成熟?前端告别“框架依赖”热潮

改成HTML优先架构后,不仅没出问题,操作速度还快了不少,毫无疑问,只要用对方法,HTML优先完全能撑得起复杂项目。

不过这对开发者来说,就得捡回以前的老本事了,以前写HTML随便用div套,现在得好好学语义化标签,比如<article>、<nav>、<section>这些。

我之前帮人改页面,本来想随便用div把内容包起来,后来发现屏幕阅读器认不出来,无奈之下只好重新调整结构。

HTML优先逆袭!JS终于成熟?前端告别“框架依赖”热潮

说实话,这不是麻烦,是对用户负责,毕竟不是所有人都能用正常的方式浏览网页。

HTTP动词也得重新捡起来,以前用框架,状态管理全靠JS,现在得靠GET、POST这些原生的HTTP方法。

比如用户登录,不用写一堆JS存状态,表单提交到服务器,服务器返回渲染好的HTML就行,还能天然支持页面刷新后保留登录状态。

我有个朋友做了个简单的后台系统,全靠表单和HTTP方法处理状态,代码量比用Vue做的少了三分之二。

HTML优先逆袭!JS终于成熟?前端告别“框架依赖”热潮

CSS的原生功能也得重视起来,以前想做个响应式布局,总想着用JS插件,现在用媒体查询、容器查询就行。

我之前做个产品展示页,用容器查询实现了“不同宽度下显示不同布局”,不用写一行JS,还比插件灵活。

老实讲,咱们以前可能太依赖框架了,把浏览器本身的能力都忘了,最后再聊聊未来。

框架不会消失,但会变,以后的前端开发,大概是HTML打基础,CSS做样式,JS负责交互,三者各司其职。

HTML优先逆袭!JS终于成熟?前端告别“框架依赖”热潮

我觉得这样挺好,以前大家比谁会用的框架更高级,现在比谁能做出更流畅、更易访问的网站。

这才是前端该有的样子,说实话,前端圈折腾了这么多年,终于回到了“用户为本”的路上。

HTML优先不是倒退,是回归本质,JS也不是不行了,是终于学会了“不抢戏”。

对咱们开发者来说,这既是挑战也是机会,得重新学习基础,但也不用再被复杂的框架绑架,如此看来,这大概是这些年前端最让人开心的变化了。

© 版权声明
THE END
喜欢就支持一下吧
点赞32赞赏 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容