iszengmh
V2EX  ›  React

为什么我感觉 react 很难学

  •  
  •   iszengmh · Mar 11, 2024 · 16323 views
    This topic created in 976 days ago, the information mentioned may be changed or developed.

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

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

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

    我已经放弃了 /dog
    Simonzzz
    Simonzzz
    Mar 12, 2024
    65
    又开始了吗?搓手~
    royzxq
    royzxq
    Mar 12, 2024
    66
    UI = render(data)

    结合 hooks ,react 真的很香
    czppgg
    czppgg
    Mar 12, 2024
    67
    好像还可以吧
    cgpiao
    cgpiao
    Mar 12, 2024 via Android
    68
    React 最大的好处是灵活性及关键字少,反之则是 vue.
    但因为更多的关键字及指令,vue 更傻瓜化。
    lichdkimba
    lichdkimba
    Mar 12, 2024
    69
    react 的文档感觉就是很抽象,只适合高手
    xwwsxp
    xwwsxp
    Mar 12, 2024
    70
    不是 React 太难学了,而是 JS 太难学了,JS 以灵活多变闻名于诸多需要;当然,糟粕也不少,神器的缝合怪~
    xwwsxp
    xwwsxp
    Mar 12, 2024
    71
    闻名于诸多语言
    ChinaHkEgg
    ChinaHkEgg
    Mar 12, 2024
    72
    估计是觉得 JSX 比较恶心吧
    N9f8Pmek6m8iRWYe
    N9f8Pmek6m8iRWYe
    Mar 12, 2024
    73
    你觉得 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
    N9f8Pmek6m8iRWYe
    Mar 12, 2024
    74
    GPT4 还行
    Navee
    Navee
    Mar 12, 2024
    75
    最近在学习 nextjs ,也觉得好难,特别是页面布局、各种 ui 交互
    但是没有前后端分离、没有接口对接,真香
    happyxhw101
    happyxhw101
    Mar 12, 2024
    76
    angular
    oliveira
    oliveira
    Mar 12, 2024
    77
    觉得 React 难学,多半是 JS 就没学好。
    huangzhiyia
    huangzhiyia
    Mar 12, 2024
    78
    @Navee 入门了就是一直香一直爽
    lozzow
    lozzow
    Mar 12, 2024 via Android
    79
    看官网教程和直接去看项目,我感觉直接看个小项目更容易上手
    dahaoyoubeifeng
    dahaoyoubeifeng
    Mar 12, 2024
    80
    感觉 react 老扯什么函数式编程就是在硬蹭,顶多就半毛钱关系
    okakuyang
    okakuyang
    Mar 12, 2024
    81
    react 真的很简单,特别是告别 class 写法之后。核心概念就那么几个,懂了 react 之后基本上所有声明式框架都能上手了。
    yangwa
    yangwa
    Mar 13, 2024
    82
    很变扭,前端工程化后我作为后端根本没动力学了,一堆技术感觉很不靠谱,期待大变革
    realJamespond
    realJamespond
    Mar 13, 2024
    83
    就 useeffect 和 usestate 一把梭,很难么?
    SayHelloHi
    SayHelloHi
    Mar 16, 2024
    84
    感觉自己写的 React 代码很不优雅

    但是 又满足了需求(能运行 无 bug )
    devzhaoyou
    devzhaoyou
    Mar 22, 2024
    85
    自学了一周前端,react 写出个封面图片制作工具,http://picprose.pixpark.net/, 咋感觉 css 比 react 难学,难学的不是语法,是各种布局用法,现在还没搞清楚
    devzhaoyou
    devzhaoyou
    Mar 22, 2024
    86
    看了很多 react vue 对比的言论文章,感觉就像一群青铜玩家在讨论英雄的各种参数,哪个英雄好哪个不好,各种英雄都能上王者
    azhong123
    azhong123
    May 11, 2024
    87
    @ThinkCat 为啥不用 react native ?、
    flutter 还得学习 dart
    ThinkCat
    ThinkCat
    May 14, 2024
    88
    @azhong123 因为 react native 的开发体验太差了,按文档配置了很久,还是各种问题。 用了一下 flutter ,很丝滑,分分钟就能看到效果。 其实 dart 不是问题,dart 语法和 java 的相似度是 90%,我一度感觉是在写 java 。flutter 和 react 的思路是完全一致的,都是 UI = render(data) 的模式,并且各种组件库资源极其丰富。我已经用 flutter 开发好一个程序了,非常顺滑。
    azhong123
    azhong123
    May 14, 2024
    89
    @ThinkCat 哦哦,我一开始想的有 reace 基础,上手 react-native 的曲线会平滑一点,但是从你的回复看来好像不是那么回事
    iszengmh
    iszengmh
    OP
    Nov 24, 2024
    90
    很久没回来看了,这么多评论,评论中有说到个很多特性就是有点反直觉,这个真的有点感深受,现在也是边做边学,还是普通水平,没有其他技术栈那种熟手的感觉
    jamesdongdong
    jamesdongdong
    Dec 22, 2024
    91
    公司项目原因我先学的 vue ,感觉挺容易上手的,各种概念的理解也很快。最近换组了在学 react ,我感觉 react 更复杂一些啊,比如 useEffect 一个 hook 牵扯到 3 个生命周期:)
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4767 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 261ms · UTC 03:19 · PVG 11:19 · LAX 19:19 · JFK 22:19
    ♥ Do have faith in what you're doing.