最近在学习react,然后遇到react中css该怎么写这个问题,上知乎上看了好多大牛都说styled-components好用是大势所趋。

但我自己用了感觉体验却很差,我在这里说说我为啥觉得styled-components不好用。

1.既然用了styled-components,那除了引用全局的css,还要引用组件的css吗?如果用了,干嘛不把组件的样式全部写到组件的css文件中呢?

好吧,如果不引用css,全靠styled-components来写的话,我给大家看一下代码

    render() {
return (
<HeaderWrap>
<HeaderContainer>
<LogoArea>
<h1>Mask的弹幕网站</h1>
<p style={{fontSize:30+"px",marginTop:10+"px"}}><LogoArrow></LogoArrow>记录生活,不忘初心</p>
</LogoArea>
<LoginPanel>
<p onclick={this.showLoginBox}>登录</p>
<p onclick={this.showRegisterBox}>注册</p>
</LoginPanel>
<UserPanel>
<UserFigure>
<p><UserIcon src={this.props.userIconUrl} alt="user-figure"/></p>
<p>{this.props.userName}</p>
</UserFigure>
<UserMenu>
<UserOption>投稿</UserOption>
<UserOption>空间</UserOption>
<UserOption>注销</UserOption>
</UserMenu>
</UserPanel>
</HeaderContainer>
</HeaderWrap>
);
}

上面的代码是我写的网页的一个header的代码,我是想把它封装成组件的。但是sass里面的嵌套的写法也不好使了,明明一个嵌套就搞定的事情,反而要定义两个组件。可以看到几乎所有容器都被用styled-components来定义了,styled-components的原理就是创建一个react里的component,但实际上有些容器所对应的样式可能就1、2条,也要调用构造函数创建对象,我是觉得这样很浪费资源,工作量也上升了。

2.styled-components写完之后你不知道html元素是啥,ok,上面的例子你知道每个标签对应html什么元素吗?你不知道。可读性很差

3.在js里写css没有自动补全,样式是在js里的标签模板里写的,所以没有自动补全。可能可以设置吧,但我不会,写css没有补全真的累。。

4.生成的html可读性也很差

这是生成的html文档,可以看到每定义一个styled-component就会随机生成一个class来绑定你定义的样式,你看这些class根本不知道绑定的样式是什么作用,自己写css的时候还是有一些语义上的定义的,比如clearfix

我就用了2天就感觉难受的不行,看了http://www.sohu.com/a/153351371_463987这篇文章,感觉很有共鸣,反正我是觉得styled-components真的不好用,大家看自己的个人喜好吧

styled-components真的好吗?的更多相关文章

  1. styled components草根中文版文档

    1.styled components官网网址 https://www.styled-components.com/docs   以组件的形式来写样式. 1.1安装 yarn add styled-c ...

  2. 6周学习计划,攻克JavaScript难关(React/Redux/ES6 etc.)

    作者:余博伦链接:https://zhuanlan.zhihu.com/p/23412169来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 和大家一样,最近我也看了Jo ...

  3. 大前端的自动化工厂(2)—— SB Family

    原文链接:https://bbs.huaweicloud.com/blogs/53c0c3509b7a11e89fc57ca23e93a89f 我坦白我是标题党,SB只是SCSS-Bourbon的简写 ...

  4. 全面系统讲解CSS工作应用+面试一步搞定

    [TOC] 一.课程介绍 二.HTML基础强化 html常见元素和理解 html常见元素分类 head区元素:(不会在页面上留下元素) * meta * title * style * link * ...

  5. 使用styled-components实现CSS in JS

    前面的话 使用jsx语法可以实现HTML in JS,使用svgr可以实现svg in JS,使用styled-components可以实现CSS in JS.这样,使用react开发,就变成了使用J ...

  6. Next.js v4.1.4 文档中文翻译【转载】

    最近想稍稍看下 React的 SSR框架 Next.js,因为不想看二手资料, 所以自己跑到 Github上看,Next.js的文档是英文的,看倒是大概也能看得懂, 但有些地方不太确定,而且英文看着毕 ...

  7. CSS Overrides: Friend or Foe?

    转自:http://www.callumhart.com/blog/css-overrides-friend-or-foe Anyone familiar with CSS will know how ...

  8. 9 CSS in JS Libraries You Should Know in 2018

    转自:https://blog.bitsrc.io/9-css-in-js-libraries-you-should-know-in-2018-25afb4025b9b 实际上  wix 的 styl ...

  9. 推荐 9 个样式化组件的 React UI 库

    简评:喜欢 CSS in JS 吗?本文将介绍一些使用样式组件所构建的 React UI 库,相信你会很感兴趣的. 在 React 社区,对 UI 组件进行样式化的讨论逐步从 CSS 模块到内联 CS ...

  10. The Road to learn React书籍学习笔记(第一章)

    react灵活的生态圈 Small Application Boilerplate: create-react-app Utility: JavaScript ES6 and beyond Styli ...

随机推荐

  1. 数学口袋精灵感受与BUG

    232朱杰 http://www.cnblogs.com/alfredzhu https://github.com/alfredzhu/ 组长,团队 230蔡京航 http://www.cnblogs ...

  2. 3dContactPointAnnotationTool开发日志(二七)

      今天的主要工作是把选中物体以及复制删除物体和右边三个面板联系起来,就是通过鼠标框选住物体,右边面板的对应项的颜色也会改变,而且通过右边面板也能控制物体的选中状态,被选中的物体成cyan青色,并且包 ...

  3. 奇异值分解(SVD) --- 几何意义 (转载)

    PS:一直以来对SVD分解似懂非懂,此文为译文,原文以细致的分析+大量的可视化图形演示了SVD的几何意义.能在有限的篇幅把 这个问题讲解的如此清晰,实属不易.原文举了一个简单的图像处理问题,简单形象, ...

  4. QMdiArea及QMdiSubWindow实现父子窗口及布局方法

    版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:QMdiArea及QMdiSubWindow实现父子窗口及布局方法     本文地址:http ...

  5. 课堂学习Scrum站立会议

    项目名称:连连看游戏 小组成员:张政,张金生,李权,武志远 Master:张政 站立会议内容 1.已完成的内容 windows下的基本用户页面,实现了多个BUTTON下7*12的页面布局,但是出现了b ...

  6. Spring Cloud Zuul(服务网关)

    新建应用:api-gateway pom.xml <?xml version="1.0" encoding="UTF-8"?> <projec ...

  7. [JSOI2009]游戏 二分图博弈

    题面 题面 题解 二分图博弈的模板题,只要会二分图博弈就可以做了,可以当做板子打. 根据二分图博弈,如果一个点x在某种方案中不属于最大匹配,那么这是一个先手必败点. 因为对方先手,因此我们就是要找这样 ...

  8. Tajo--一个分布式数据仓库系统(设计架构)

    上一篇Tajo--一个分布式数据仓库系统(概述)废话了一通,下面介绍一下Tajo的体系结构.以及官方的实验成果吧 一.体系架构 Tajo采用了Master-Worker架构(下图虚线框目前还在计划中) ...

  9. 【BZOJ1758】【WC2010】重建计划(点分治,单调队列)

    [BZOJ1758][WC2010]重建计划(点分治,单调队列) 题面 BZOJ 洛谷 Description Input 第一行包含一个正整数N,表示X国的城市个数. 第二行包含两个正整数L和U,表 ...

  10. 洛谷 P3723 [AH2017/HNOI2017]礼物 解题报告

    P3723 [AH2017/HNOI2017]礼物 题目描述 我的室友最近喜欢上了一个可爱的小女生.马上就要到她的生日了,他决定买一对情侣手环,一个留给自己,一个送给她.每个手环上各有 \(n\) 个 ...