尝试了一下 react,直呼最强-react 小书读后感

2021-03-15 00:59:37 +08:00
 miv
最近看一 react 开源项目,看得头大。
里面各种 hooks 满天飞,不过代码倒是整洁。
对于小白看这种项目感觉就是无限套娃,无限封装。
所以没办法,用了几天的时间看了一下 react (之前有接触过,没入门,有 vue 小基础),有几点感受:
0 、react 的 jsx 其实也还好,没有那么难受(对比之前 vue 的那种 teamplate )
1 、hooks 真的轻量,用它好自由,放飞自我
2 、区分聪明组件傻瓜组件代码更舒服,容易复用(还了解到状态提升这种玩意)
3 、高阶组件就是个封装逻辑的,离不开他,其实有必要了解
4 、了解了一下 redux 原理原来是如此好玩,和 vuex 有共通之处
5 、之前 vue 上面那些 mapstate (记不太清名了)原来是这样来的,有一种茅塞顿开的感觉(之前是在 vue 上接触的,直接上手没想太多,时隔多月,没想到在 react 上对他的了解深入了一下)
6 、redux 了解以后,发现 useselect,usedispach 就感觉这些 hooks 香香

最后,感觉很多技术都是共通的,要取长补短,相互借鉴,融会贯通。
6226 次点击
所在节点    React
43 条回复
miv
2021-03-15 01:00:12 +08:00
小白给 react 发帖打 call
learningman
2021-03-15 01:11:56 +08:00
这几天在看 react,感觉个人小项目还是 vue 舒服的多
neoblackcap
2021-03-15 01:13:34 +08:00
没记错的话,hook 就是为了要干掉高阶组件
FEDT
2021-03-15 01:22:48 +08:00
245 可以深入讲讲吗,写个文章什么的
miv
2021-03-15 01:27:46 +08:00
@FEDT 哈哈,老哥直接去撸一下 react 小书就好了,那个书强推
ericgui
2021-03-15 01:53:29 +08:00
@learningman 哪个舒服用哪个

虽然我不用 vue,但我觉得还是看个人对框架的熟悉程度吧
murmur
2021-03-15 08:09:12 +08:00
高阶组件是个反前端的设计思路
java 喜欢搞什么连续继承
前端是我要的组件就是最强,如果你不行,我直接换一个行的,谁有闲心接着你的组件写高阶组件啊
zqx
2021-03-15 08:39:50 +08:00
高阶组件就是高阶函数+组件,很符合函数式的风格,比如 array.filter.map.reduce 这一套操作下来就得到了你想要的结果,组件也如此
zhuangzhuang1988
2021-03-15 09:19:25 +08:00
@murmur ✓,维护时 剧痛哭
meteor957
2021-03-15 09:54:58 +08:00
@murmur 组合 vs 继承
murmur
2021-03-15 09:59:09 +08:00
@meteor957 前端的组合不是代码的组合,是组件的组合,组件组合出页面,选项控制组件的特性

很大一部分是因为 css 控制了前端最基本的样子,这一部分是和 js 无关的

我希望是 dialog 可以自由显示标题,可以定制按钮,可以控制是不是 modal,可以控制尺寸、边距、初始位置

而不是要 dialog 继承 window 继承 pannel
love2020
2021-03-15 10:19:14 +08:00
@miv 什么小书
nannanziyu
2021-03-15 10:24:40 +08:00
@murmur
感觉你没有做过复杂项目
你所说的,对于做个 demo 来说没错
但是对应到具体的项目,每个项目之前各个组件风格都是统一的
比如项目所有的 dialog 风格都是统一的,都是细节部分的区别,所以就有了写一个 common 组件,然后其他派生的需求
miv
2021-03-15 10:26:51 +08:00
murmur
2021-03-15 10:29:47 +08:00
@nannanziyu

比如项目所有的 dialog 风格都是统一的,都是细节部分的区别

说的没错,这些是 CSS 要解决的问题啊,如果 css 都解决不要,可以说出来讨一下,哪个细节不能用 css 调整,不能用选项控制(这个选项是大众需求,不是为杠而生,比如标题、按钮、关闭的 XX 、最大化最小化这些属于合理需求)
justin2018
2021-03-15 10:32:54 +08:00
React.js 小书
https://hyf.js.org/react-naive-book/
楼主说的是这本书吗?
miv
2021-03-15 10:33:52 +08:00
@justin2018 对的
nannanziyu
2021-03-15 10:48:53 +08:00
@murmur
相似组件并不只有样式的区别
比如同样的列表,A 列表和 B 列表样式完全一样,但是一个是 QQ 新闻,一个是网易新闻
那么做一个同样的 common 组件,然后分别继承,override getFeeds 方法就可以了,之后再添加别的平台,也是非常方便
具体项目具体情形具体分析,但是复杂项目中通用组件派生的情况非常普遍而且是最佳实践
zxCoder
2021-03-15 10:58:47 +08:00
试试 angular
csdoker
2021-03-15 11:24:44 +08:00
楼主看的啥开源项目呀 我也一直想找个适合小白看的项目 想学习下别人 hooks 的用法

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

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

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

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

© 2021 V2EX