CSS 还是 inline-styles ? (React)

2016-04-24 15:34:24 +08:00
 tongchia
最近在尝试使用 Material-UI
其样式部分全部使用 inline-styles
一时间有些接受不了 所以又尝试 react-toolbox
虽然功能和完整性上不如 MaterialUI 但回到熟悉的 sass 舒服多了 顿时感觉自己萌萌哒 (・ิω・ิ)
但写了几个组件后 又开始纠结
很多时候 我们需要根据环境来改变组件行为 也就是说 我还需要通过 style 标签来修改组件的动画、布局方式 ... 此时很大一部分 CSS 样式被 inline-styles 覆盖了
...
(・・;)
要不还是再看看 Material-UI
好吧 然后又写了一堆组件
每一个自定义组件里都写了一堆 style 来覆盖它自带的 style
...
(ーー;)
还不是一样

但 Material-UI 利用 Context 向下传递 theme 配置的方式很优雅 顶级父组件的 muiTheme 属性一变 所有组件的样式都变了
( •̀ㅁ•́;)

但 CSS 同样也可以做到一键切换样式 比如顶级元素的 className="light-theme"什么的
但这样浏览器性能是不是很差
(ㆀ˘・з・˘)

CSS 还有个好处就是 CSS-loader(webpack)能输出静态 css 文件 和 js 文件分离 增加 http 加载速度 而且浏览器会提前解析 CSS 文件
(; ・`д・´)

但 js 生成 style 在不同环境下的自适应更加优雅 不仅仅是监听 window resize 比如我想判断 iOS 还是 Android 变更符合用户操作习惯的展示和行为方式 虽然 ionic 用 SCSS 做的很好 但实际上生成的 CSS 规则都带有超级长一串 class
层层嵌套的 class 不仅增加 CSS 文件的体积 性能上也不如 inline-styles 吧

(´-﹏-`;)
(◎o◎)

好纠结 ...
选择困难症 ...
3161 次点击
所在节点    前端开发
2 条回复
adspe
2016-04-24 19:38:12 +08:00
既然都 react 直接 CSSmodule 啊。
tongchia
2016-04-27 13:34:16 +08:00
@adspe 那还是 CSS

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/274055

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX