Ant Design React 使用心得

接触Ant Design是几个月之前,那时候公司需要做一个后台管理系统给公司内部人员使用,因为是内部人员使用的所以主要能实现功能就行,对具体界面UI上面没有啥要求,设计师也没有专门出设计稿。在这种情况下,发现了Ant Design这个框架。

刚发现Ant Design的时候,说实话被惊艳到了,因为组件太全面了。之前用google的material UI框架的时候,很多组件都没有,需要自己写或者找第三方插件,但是Ant Design,真的是能想到的组件基本上都有,而且样式都还不错。所以在进行没有特别多UI设计要求的后台开发的时候,Ant Design大大提高了开发效率,想用啥组件拿来就用,在那个时候也成功被圈粉了。

进行完后台开发,重新回到公司主项目开发之后。跟公司其他开发人员交流之后,决定把ant design导入项目依赖包,然后在开发的过程中,慢慢替换跟舍弃material UI。然而之后的开发,我也发现了Ant Design的弊端,那就是组件基本上是完全没有办法自定义样式,基本上所有组件都不接收style参数。想要换个颜色?不行。想要改个大小?也不行。当时心中真的一万只草泥马跑过。。。

那如果一定要自定义样式改怎么做呢?两个方法,第一种:直接改Ant Design的源码,第二种:通过css强制覆盖。第一种方法,没太多好讲的,如果你准备改源码,要不就把ant的代码拷贝到本地,要不就自己新建一个依赖,用自己更改之后的依赖。这种方法比较麻烦,你需要理解ant的源代码,同时因为ant很多代码是用ts写的,所以如果你不太了解ts也没办法这么做,最重要的是,很容易出bug。所以这里我准备具体讲一下第二种方法。

通过css强制更改,主要是用css中的important强制覆盖掉ant design的样式。我们首先在审核ant组件的元素找到组件的类名,然后在css文件中输入类名,将你需要覆盖的样式用important强制覆盖。同时为了防止强制覆盖样式会引起全局的样式冲突,我们需要给组件的父级一个id,然后css中,组件的类名需要写在父级的id里面,这样样式覆盖只会在你定义的这个父级里面生效。

但是这种方法也会有两个缺点。第一:这种方式有时候没办法覆盖通过js控制的动态变化的样式。第二点,父级是在最顶层的组件也不好用这种方法去强行覆盖,比如弹框组件。

总结:ant design确实是一个很好的第三方框架,组件非常全面,样式效果也都比较不错,但是可能是因为ant希望用这个框架的用户都按照他们的设计思路来,所以导致这个框架自定义程度很低。所以,如果需要想用ant design,我的建议是项目里面同时还要有一套material UI框架,或者别的自定义程度高的第三方框架,这样当实在没有办法更改ant的样式满足项目需求的时候的,还有另外的框架可以用。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,155评论 25 708
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,223评论 4 61
  • 她呜呜咽咽语不成声,倒教林非不知如何是好。女人身子他沾过不少,这女人心,却是曲径通幽千回百转,他何曾在这上面费过心...
    籽盐阅读 176评论 0 0
  • 定位# 元素定位: 浮动###### eg:######
    机器猫的百宝袋阅读 273评论 0 1
  • 【颜语心诗】在谈狼文化之前要多谈人性和人情。人性和人情就是人心。得人心者赢天下。一个连人都做不好的,改去学习狼,最...
    颜丙翔阅读 317评论 0 0