不超过 150KB 的网页项目,除了 jquery 没别的办法了吗?
做路由器的管理界面,生产的模块可以用于存放网页的区域,容量只有 150KB 。
关键还要好看。。
做路由器的管理界面,生产的模块可以用于存放网页的区域,容量只有 150KB 。
关键还要好看。。
@mclxly 美工的图片就放不下了
@InternetExplorer 然后你发现没网络配置不了路由器
https://github.com/pure-css/pure ,gzip 之后 3.7KB 的 css 框架。
@luob 我的天,厉害了~~谢谢
图: https://image2.sina.com.cn/IT/h/2006-09-08/3c1d45d3975101b87db8e2f4397a2ef4.jpg
配色可以去这个网站: https://colorhunt.co/
前阵子在批站 arduino 作者里他这个东西做的就挺好,几乎手写的.
https://github.com/bilibilifmk/ESP_weather_Cube/tree/master/%E6%BA%90%E7%A0%81/qxz/data
Alpine.js is lighter weight than jQuery, coming in at 21.9kB minified — 7.1kB gzipped — compared to jQuery at 87.6kB minified — 30.4kB minified and gzipped. Only 23% the size!
https://css-tricks.com/alpine-js-the-javascript-framework-thats-used-like-jquery-written-like-vue-and-inspired-by-tailwindcss/#:~:text=js%20provides.-,Size,Only%2023%25%20the%20size!
这个咧。
你不是用了 vue 怎么就没有其他方式了,npm 和操作 dom 也没什么关系。vue 和 react 都可以脱离 npm 和 node 环境单独引入。不过还是建议用上 webpack 之类的打包工具,因为按需加载和 tree shaking 等等一系列工具链带来的福利可以显著缩小项目体积。
“更方便的操作 dom,设置属性之类的”,vue 也可以做到吧,而且以我的认知,vue 这类 MV*框架目的就是避免手动操作 dom 啊。想问问主是什么样的需求非 jquery 不可
Hyperapp
至于 Svelte,它是个编译器,但其实强行套用 ECMA 新语法有点蠢,export 直觉上应当是从内向外的数据流,但 svelte 下是从外向内的……
@galikeoy 我不会有你说的这么没追求的想法,还有我这不就是来问了么?技术更新快怎么了,我能跟上,我一般用 vue-cli ( babel stylus less )有问题吗?我生产都是用 vue3 了。还有不到 150kb,我确实还没找到“正确”的开发姿势,这和环境受限有关,不理解面向对象的话,创建 dom 方式去写一堆没必要的垃圾是很正常的,但请相信我,我和他们不一样。
如果有较高的动态界面需求,或者想尽可能实现点酷炫的交互,可以考虑 Mithril.js ,gzip 后 9.8 KB,连带 Ajax 、Promise 、router 都包了,拎包入住。
不过需要注意的是,上述两个框架(的最新版)都只官方支持到 IE11 。所以如果你对浏览器兼容有要求,建议考虑其他方案。( Mithril 1 可以支持到 IE9,但注意文档版本。)
不建议 jQuery 。不是说 jQuery 不好,而是在有现代前端框架可用的情况下,看不到使用 jQuery 的必要性。
Vue 2 也可以考虑,gzip 后 22.9 KB,但你实际开发的时候很可能需要再加上 9.6 KB 的 Vue Router 。加起来 30 多 KB 的体积……好像也还可以哈?
如果你希望界面足够好看,真正占体积的是资源素材和 CSS 。如果你有手写样式的能力,不建议使用现成的样式框架(体积不好控制),建议 Tailwind CSS (启用 purge 功能)一把梭。以我对(民用级)路由器管理后台的了解,150 KB 不是个难以实现的目标。
关于审美,其实基于 Tailwind CSS 默认配置把握几个原则,做出来的东西都不会太差:
– 使用留白
– 使用统一尺寸
– 使用较少的颜色
– 在保证对比度的前提下使用多个明暗度( blue-500 、blue-300 之类的)
这样的话,看需求设计包含的工作量了。如果没几个子视图,视图内容也比较简单,手撸 HTML/JS 我觉得也行。甚至 jQuery 都不用:`const $ = document.querySelectorAll`。如果子视图数量多,或者涉及不少数据逻辑,上框架会省事些,至少便于你实现组件化,少点思维负担。
虽然我嚼着一个路由器后台的子视图也不少了。