V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
iszengmh
V2EX  ›  React

为什么我感觉 react 很难学

  •  
  •   iszengmh · 256 天前 · 11325 次点击
    这是一个创建于 256 天前的主题,其中的信息可能已经有所发展或是发生改变。

    感觉官方文档写得也不清不楚的,生命周期这个概念也在其他书籍看到,感觉 bug 很调试

    89 条回复    2024-05-14 10:52:37 +08:00
    erzong
        1
    erzong  
       256 天前
    是看的最新的官网吗
    xingguang
        2
    xingguang  
       256 天前
    直接 react.dev 看 hooks 实现,生命周期太难记啦
    streamrx
        3
    streamrx  
       256 天前 via iPhone
    早就没有生命周期了
    yKXSkKoR8I1RcxaS
        4
    yKXSkKoR8I1RcxaS  
       256 天前   ❤️ 6
    很恶心在 JS 里写 HTML 的这种写法,就像在 HTML 里写 PHP 一样,很傻 X
    MRG0
        5
    MRG0  
       256 天前
    我我觉得最快的学习方法就是参与到相关项目里,很快就能掌握基本使用
    BaiLinfeng
        6
    BaiLinfeng  
       256 天前
    @Seria 有道理
    8863824
        7
    8863824  
       256 天前
    这个已经算简单的东东了,哈哈
    vczyh
        8
    vczyh  
       256 天前   ❤️ 2
    @Seria 我感觉这个写多了反而很爽,JS 的能力就是 JSX 的能力
    iOCZS
        9
    iOCZS  
       256 天前
    类组件的话重新渲染只是调用 render 函数,render 函数里用到的东西本身还在类里,没有重新创建,所以子组件接收的 props 没变,也就不会重新渲染。函数组件的话,重新渲染是调用函数本身,函数里的本地变量都会重新创建,子组件都会重新渲染,除非采取一些措施。相当于以前是黑名单策略,现在是白名单策略。。。我的一点浅见
    githmb
        10
    githmb  
       256 天前
    基础不牢,地动山摇
    w4ngzhen
        11
    w4ngzhen  
       256 天前   ❤️ 1
    @Seria 然而 JSX 和 React 其实没有必然的关系,你完全可以写 React.createElement ,但最后发现构造 UI ,特别是嵌套 UI ,还是类似 JSX 这样的语法糖好用。另外,实际上 React 中的 JSX 标签和 HTML 中的标签,完全是两个东西,只不过为了更接近 HTML 而做的一样。
    lambdaq
        12
    lambdaq  
       256 天前   ❤️ 3
    jurassic2long
        13
    jurassic2long  
       256 天前
    所有前端框架都对新手入门极其不友好,各种乱七八糟的配置,一个逻辑要写在多个脚本里
    ZGame
        14
    ZGame  
       256 天前
    只有你去实现一遍复杂的需求之后,或许你才能理解 React 的好处,或者利用 React 的相关生态...
    gaeco
        15
    gaeco  
       256 天前
    这玩意不就差不多 js 的写法,看看 hooks ,直接上手写吧
    wu67
        16
    wu67  
       256 天前
    个人感觉, react 难就难在部分概念有点反直觉. 另外 jsx 你可以不用, 尽量拆分一下 ui 相关代码就行
    mrwangjustsay
        17
    mrwangjustsay  
       256 天前
    enchilada2020
        18
    enchilada2020  
       256 天前 via Android
    @Seria 那像 Vue 那种在 HTML 模板里加黑魔法的你能接受吗?总不能像 jQuery 或者 swing 那样吧 岂不是更恶心 现代前端框架的一个重要进步就是声明式写 UI
    yolio2003
        19
    yolio2003  
       256 天前
    最复杂的是 hooks 的设计,以及刷新的优化,包大小更是无解。
    突破了这些就还挺快乐的。
    wazggcd
        20
    wazggcd  
       256 天前 via Android
    @Seria 甚至已经开始在 js 里写 css ,体验还挺好😂😂😂
    summerwar
        21
    summerwar  
       256 天前
    有 html css 和 js 基础的话,学起来会比较简单。另外 react 写起来很重要的一点是,把所有情况的视图代码都写出来,然后用一堆状态(开关)来决定什么时候显示什么。我开头没太理解,等理解了之后发现这玩意写起来很简单,爽的很
    wjx0912
        22
    wjx0912  
       256 天前
    没啥好学的,直接撸项目
    kneo
        23
    kneo  
       256 天前 via Android
    @Seria html 里写 js ,还是 js 里写 html ?这是个问题。
    LandCruiser
        24
    LandCruiser  
       256 天前
    react 核心就是四个字,状态提升。其他的都是 api ,记住就可以了。
    leaflxh
        25
    leaflxh  
       256 天前
    用惯了大差不差

    一开始学 react 不会用 hook 写出一堆 bug ,现在习惯了用的很爽
    最近刚开始看 vue ,也觉得 smjb ,写多了也就明白了
    debuggerx
        26
    debuggerx  
       256 天前 via Android
    盲猜两个最大的可能性:
    1. 选错了学习资料,看了太多尤其是国内低水平的和过时的教程,导致走的弯路。直接看官网最新教程和示例学习,直接 next.js 上手最简单。
    2. 被已有经验束缚,尤其原来是做原生开发的,转前端写 web 或者转 flutter ,经常出现这个情况,原生开发的那一套模式根深蒂固,各种新概念总想往原生上靠,于是就出现了很多资深原生开发写的类 web 代码甚至还不如学习了同样时间的新手。
    echo0x000001
        27
    echo0x000001  
       256 天前
    @lambdaq 长见识了,只能说牛皮
    loveDiu4ever
        28
    loveDiu4ever  
       256 天前
    react 只是恶心 不是难
    maigebaoer
        29
    maigebaoer  
       256 天前 via Android
    习惯了就不难,加油
    chenliangngng
        30
    chenliangngng  
       256 天前
    react 只要接受了 babel 运行环境,jsx 和最基本的组件间嵌套,后面都是豁然开朗越学越爽的
    crazyweeds
        31
    crazyweeds  
       256 天前
    我感觉很爽啊,就是拆拆拆、组组组,搭积木一样。
    laizenan
        32
    laizenan  
       256 天前
    作为写了 6 年 React 的资深前端,我也觉得 React 很难,至今经常被各种面经考倒……但是入手好像还是挺容易的,生态很好,而且渐进式,啥也不会也可以直接上。上了再慢慢学。
    BwNVlwSq
        33
    BwNVlwSq  
       256 天前 via iPhone
    上手还是有一点门槛的,熟手以后真的是随心所欲😊
    xiaofan305
        34
    xiaofan305  
       256 天前 via Android
    因为你的感觉是对的
    vace
        35
    vace  
       256 天前
    React 是使用者上限与下限差距极大的框架,前期各种概念,后期为所欲为。🤣
    tdgpd13
        36
    tdgpd13  
       256 天前
    因为就是难学反人类啊,其实前端就那么点东西,但每隔几年就有新的框架轮子出来,螺蛳壳里做道场...
    HaroldFinchNYC
        37
    HaroldFinchNYC  
       256 天前
    你要是把 es6 先学一学,你两天就能上手 react
    Track13
        38
    Track13  
       256 天前 via Android
    看看 solidjs 吧。这个简单
    bianhui
        39
    bianhui  
       256 天前
    可能仅仅是因为,学习能力,理解能力差。不必强求。
    lairdnote
        40
    lairdnote  
       256 天前
    多写项目吧 不懂就 ai 和 google 查询 然后写 blog
    ccraohng
        41
    ccraohng  
       256 天前
    js 不行
    dog82
        42
    dog82  
       256 天前
    vue 更符合国人的思维习惯
    xxmaqzas
        43
    xxmaqzas  
       256 天前
    直接 next.js,遇到不懂的再去 google
    potatowish
        44
    potatowish  
       256 天前 via iPhone
    react 官网教程写的就比较清楚,建议看英文版,跟着敲,有基础之后再上 next.js
    thedinosaurmail
        45
    thedinosaurmail  
       256 天前
    我不喜欢 vue 那种写法,还挺喜欢 react 的写法
    blackcellcode
        46
    blackcellcode  
       256 天前
    万事开头难呗
    linzhe141
        47
    linzhe141  
       256 天前
    最难的是他的 state 要 immutable
    LiuJiang
        48
    LiuJiang  
       256 天前
    @lambdaq 2015 年的文章,天哪,太牛了
    DICK23
        49
    DICK23  
       256 天前
    学 react 必须理解帧这个概念,不要纠结于状态不状态的
    LavaC
        50
    LavaC  
       256 天前
    react 生态很强,但是太复杂了,我选择 solid 。
    xingdaorong
        51
    xingdaorong  
       256 天前
    类组件基本不用了,直接学 hooks 就行,也就错误捕获需要类组件
    Imindzzz
        52
    Imindzzz  
       256 天前 via Android
    那前端不适合你,前端就没有难的东西
    sampeng
        53
    sampeng  
       256 天前
    没啥好学的。。copliot 一路 tab
    gxvsko
        54
    gxvsko  
       256 天前
    supuwoerc
        55
    supuwoerc  
       256 天前
    需要把闭包的坑踩一踩
    qqqqqcy
        56
    qqqqqcy  
       256 天前
    不是前端就别学 react ,学 vue 官方文档要好很多
    lstz
        57
    lstz  
       256 天前 via Android
    react 挺好学的,配合 redux toolkit ,开发效率 upup
    minottomie4383
        58
    minottomie4383  
       256 天前
    正好别学了,随便给自己个理由
    比如作为开源技术还搞政治站队
    ThinkCat
        59
    ThinkCat  
       256 天前
    react 已经很简单了,只要把状态管理搞明白,直接起飞。然后再去写 flutter ,分分钟开发个应用出来。
    luoway
        60
    luoway  
       256 天前
    难易是相对的,如果你说 React 比 Vue 难,那么按月经帖是支持大于反对
    zbowen66
        61
    zbowen66  
       256 天前
    @Seria #4 Flutter 更是重量级
    mmdsun
        62
    mmdsun  
       256 天前 via iPhone
    @Seria
    UI = render(data) , 把 UI 抽象为函数完全没问题。
    x2ve
        63
    x2ve  
       256 天前 via iPhone   ❤️ 2
    看完评论 每隔两层就有一个说应该关注某个重点的 哈哈 看来确实挺难
    kylix
        64
    kylix  
       256 天前
    你不是一个人

    我已经放弃了 /dog
    Simonzzz
        65
    Simonzzz  
       256 天前
    又开始了吗?搓手~
    royzxq
        66
    royzxq  
       256 天前
    UI = render(data)

    结合 hooks ,react 真的很香
    czppgg
        67
    czppgg  
       255 天前
    好像还可以吧
    cgpiao
        68
    cgpiao  
       255 天前 via Android
    React 最大的好处是灵活性及关键字少,反之则是 vue.
    但因为更多的关键字及指令,vue 更傻瓜化。
    lichdkimba
        69
    lichdkimba  
       255 天前
    react 的文档感觉就是很抽象,只适合高手
    xwwsxp
        70
    xwwsxp  
       255 天前
    不是 React 太难学了,而是 JS 太难学了,JS 以灵活多变闻名于诸多需要;当然,糟粕也不少,神器的缝合怪~
    xwwsxp
        71
    xwwsxp  
       255 天前
    闻名于诸多语言
    ChinaHkEgg
        72
    ChinaHkEgg  
       255 天前
    估计是觉得 JSX 比较恶心吧
    N9f8Pmek6m8iRWYe
        73
    N9f8Pmek6m8iRWYe  
       255 天前
    你觉得 React 很难学可能有以下几个原因¹²³⁴⁵:

    1. **函数式编程**:React 的本质是函数式编程,如果你不太了解函数式编程,可能会觉得难以理解。React 的许多概念和设计都源于函数式编程³。

    2. **灵活性**:React 提供了很大的灵活性,这意味着有很多种方法可以实现同样的功能。这种灵活性可能会让初学者感到困惑¹。

    3. **生态系统**:React 的生态系统非常丰富,包括各种状态管理库、路由库等。这种丰富性可能会给初学者带来选择困难¹。

    4. **学习曲线**:React 的学习曲线相对较陡。一开始可能会觉得很简单,但当你深入学习时,可能会发现有很多复杂的概念需要理解²。

    5. **优化**:React 的优化需要一定的心智负担,例如使用 PureComponent 和 shouldComponentUpdate 来避免不必要的渲染²。

    总的来说,React 的学习难度主要来自于其函数式编程的本质、灵活性、丰富的生态系统、陡峭的学习曲线以及优化的复杂性。但是,一旦你掌握了这些概念,你会发现 React 是一个非常强大和灵活的工具¹²³⁴⁵。希望这个解释能帮到你!

    源: 与必应的对话,2024/3/12
    (1) 为什么我觉得 react 这么难用? - 知乎. https://www.zhihu.com/question/356637220.
    (2) 为什么都在说 React 比 Vue 难? - 知乎. https://www.zhihu.com/question/328985141.
    (3) 为什么我觉得 react 这么难用? - 知乎. https://bing.com/search?q=%e4%b8%ba%e4%bb%80%e4%b9%88+react+%e5%be%88%e9%9a%be%e5%ad%a6.
    (4) 为什么我觉得 react 这么难用? - 知乎. https://www.zhihu.com/question/356637220/answers/updated.
    (5) 为什么都在说 React 比 Vue 难? - 知乎 - 知乎专栏. https://zhuanlan.zhihu.com/p/221964585.
    N9f8Pmek6m8iRWYe
        74
    N9f8Pmek6m8iRWYe  
       255 天前
    GPT4 还行
    Navee
        75
    Navee  
       255 天前
    最近在学习 nextjs ,也觉得好难,特别是页面布局、各种 ui 交互
    但是没有前后端分离、没有接口对接,真香
    happyxhw101
        76
    happyxhw101  
       255 天前
    angular
    oliveira
        77
    oliveira  
       255 天前
    觉得 React 难学,多半是 JS 就没学好。
    huangzhiyia
        78
    huangzhiyia  
       255 天前
    @Navee 入门了就是一直香一直爽
    lozzow
        79
    lozzow  
       255 天前 via Android
    看官网教程和直接去看项目,我感觉直接看个小项目更容易上手
    dahaoyoubeifeng
        80
    dahaoyoubeifeng  
       255 天前
    感觉 react 老扯什么函数式编程就是在硬蹭,顶多就半毛钱关系
    okakuyang
        81
    okakuyang  
       255 天前
    react 真的很简单,特别是告别 class 写法之后。核心概念就那么几个,懂了 react 之后基本上所有声明式框架都能上手了。
    dengji85
        82
    dengji85  
       255 天前
    很变扭,前端工程化后我作为后端根本没动力学了,一堆技术感觉很不靠谱,期待大变革
    realJamespond
        83
    realJamespond  
       255 天前
    就 useeffect 和 usestate 一把梭,很难么?
    SayHelloHi
        84
    SayHelloHi  
       251 天前
    感觉自己写的 React 代码很不优雅

    但是 又满足了需求(能运行 无 bug )
    devzhaoyou
        85
    devzhaoyou  
       246 天前
    自学了一周前端,react 写出个封面图片制作工具,http://picprose.pixpark.net/, 咋感觉 css 比 react 难学,难学的不是语法,是各种布局用法,现在还没搞清楚
    devzhaoyou
        86
    devzhaoyou  
       246 天前
    看了很多 react vue 对比的言论文章,感觉就像一群青铜玩家在讨论英雄的各种参数,哪个英雄好哪个不好,各种英雄都能上王者
    azhong123
        87
    azhong123  
       196 天前
    @ThinkCat 为啥不用 react native ?、
    flutter 还得学习 dart
    ThinkCat
        88
    ThinkCat  
       193 天前
    @azhong123 因为 react native 的开发体验太差了,按文档配置了很久,还是各种问题。 用了一下 flutter ,很丝滑,分分钟就能看到效果。 其实 dart 不是问题,dart 语法和 java 的相似度是 90%,我一度感觉是在写 java 。flutter 和 react 的思路是完全一致的,都是 UI = render(data) 的模式,并且各种组件库资源极其丰富。我已经用 flutter 开发好一个程序了,非常顺滑。
    azhong123
        89
    azhong123  
       193 天前
    @ThinkCat 哦哦,我一开始想的有 reace 基础,上手 react-native 的曲线会平滑一点,但是从你的回复看来好像不是那么回事
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2830 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 07:24 · PVG 15:24 · LAX 23:24 · JFK 02:24
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.