262022.3

移动端跨端项目架构

09:52:27 已有0条回复
152022.3

项目CSS管理方案对比

在项目中,我们不仅要管理js代码,还要管理css代码,但是我们现在业界对js研究的比较多,对css比较少,不过这两年我注意到已经有不少有关css的新思想。不过,抛开这些新东西,我们的项目中,应该怎么管理我们的css呢?我做了调研,大致结果如下:

方案 解释 优点 缺点
Atomic CSS Tailwind, https://acss.io/ 复用性,css代码量 html代码量,多处修改易漏
AMCSS <div button="large blue">Button</div>
OOCSS 结构和设计的分离,容器和内容的分离
.mt20 { margin-top: 20px } -> 样式
.flex .flex1 { flex: 1 } -> 结构
.tc { text-align: center } -> 内容
.abs { position: absolute } -> 容器
.clearfix:after { content: '', display: block; clear: both; height: 0 }
SMACSS Base 基本规则,整体样式,比如 body、input、button、form
Layout 布局规则,比如 顶部,页脚,边栏,模块的大小等
Module 可复用的模块样式规则
State 状态样式 比如 隐藏 当前高亮
Theme 主题 控制整体UI
层次分明 需要整体掌控易出错
MCSS multilayer CSS,层层覆盖叠加
BEM .block__element--modifier {} 代码量
scoped css vue 隔离 依赖vue
css modules import * as Css from './some.css' 隔离,tree shaking,编译为RN Stylesheet对象 依赖编译
css-in-js styled-components 隔离,组件化 依赖运行时,代码量

实际上,没有哪一种是最好的,只有适合不适合。对于我个人而言,样式隔离是一个必须选项,因为我开发工具库比较多一些,我提供库给别人用,别人可能还会使用其他人的库,两个库之间撞名的情况很容易发生,所以,隔离对我来说非常重要。在考虑到各种场景后,我最终使用css modules比较多,在nautil中我就坚持css和css modules一起用。不过,除了隔离之外,复用性就不是很好,因为很少能复用其他库的样式,最终会导致使用了我的库的站点,css代码量可能会篇多一些。所以我说,没有那个最好,只有最适合。

18:05:10 已有2条回复
  1. 方案列为什么会折行呢
    #1174 1188 2022-03-18 14:35 回复
  2. 页面宽度不够,已经调整了
    #1175 回复给#1174 否子戈 2022-03-18 19:48 回复
042022.3

今天遇到一个怪事,用Macbook,前几天还比较正常,今天刷B站的时候,视频卡的跟狗一样,重启了光猫,也是一样,在偏好设置里面搞了很久,也没有解决,但是平板上刷B站一点问题没有,难道它知道我是用网页或app?但是在另外一台windows上却也稳如老狗。于是一通搜索,在一个角落里面找到一句话,大概意思是“USB拖太多东西,导致网卡供电不足”,日妈还有这种事?于是真的是了一下,拔掉USB Hub上的东西,真的恢复了,草啊!!!

20:01:24 已有0条回复