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

[Vue、React 和 Angular 一起学]首月总结

  •  
  •   learnshare ·
    learnshare · 2021-09-06 10:22:36 +08:00 · 5921 次点击
    这是一个创建于 1169 天前的主题,其中的信息可能已经有所发展或是发生改变。

    挑战活动 持续了一个多月,头发掉了不少。

    https://github.com/LearnShare/learn-VRA 不知道对比着看是否舒适?

    从几个方面简单对比一下:

    • 文档:Vue > React > Angular
      Angular 和 TypeScript 的文档都看得头疼,不够详尽,也不够平滑。
    • 上手难度:React > Vue > Angular
      React 最为简洁,class + JSX = UI 。

    (个人感受,拒绝不友好的战斗)

    第 1 条附言  ·  2021-09-06 11:07:29 +08:00
    纠错:
    上手难度 => 上手容易程度
    51 条回复    2021-09-10 10:46:38 +08:00
    fds
        1
    fds  
       2021-09-06 10:38:50 +08:00   ❤️ 3
    “上手难度”应该改成“上手容易度”,不看描述,还以为你说 React 最难。
    我个人觉得最简单的框架是 https://svelte.dev/examples
    LokiSharp
        2
    LokiSharp  
       2021-09-06 10:43:25 +08:00
    你觉得 Angular 难主要是不怎么会 TS 吧,会 TS 上手就简单了
    另外,建议 Vue 和 React 也用 TS 写
    wszgrcy
        3
    wszgrcy  
       2021-09-06 10:46:53 +08:00   ❤️ 2
    友好的问下,你觉得 Angular 文档哪里不够详尽或者哪里不够友好?我认识翻译文档的大佬,可以商量下进行一些调整
    pinkSlime
        4
    pinkSlime  
       2021-09-06 10:48:01 +08:00
    Flutter 那样的用代码堆 UI 可以接受
    React 那样的 jsx 堆 UI 最舒服
    再不济 WPF 那样 xaml+binding 也勉强能玩
    1202 年再让我写模板还跟故意跟代码混在一起就敬谢不敏了
    Oktfolio
        5
    Oktfolio  
       2021-09-06 10:48:43 +08:00   ❤️ 1
    @LokiSharp Vue + TS,你会发现你写出来的根本不像 TS
    toma77
        6
    toma77  
       2021-09-06 10:48:54 +08:00
    @fds svelte 不提供 render,开发复杂组件成本太高了,老哥有什么好的方法吗?
    LokiSharp
        7
    LokiSharp  
       2021-09-06 10:53:03 +08:00
    @Oktfolio 那是 Vue 的问题,所以我不用 Vue
    murmur
        8
    murmur  
       2021-09-06 10:54:57 +08:00
    react 简洁,这一看就没用过全家桶
    learnshare
        9
    learnshare  
    OP
       2021-09-06 11:06:24 +08:00
    @fds 我的错,是上手容易程度

    @wszgrcy 不是翻译的问题,原始文档也一样。
    比如前几天看 [模板变量]( https://angular.cn/guide/template-reference-variables) 部分,就没有提到任何关于 ViewChild 的内容。从这里点进 TemplateRef,也没有可参考的例子。

    @pinkSlime Flutter 风格还可以,但我更喜欢 QML 风格
    shenjinpeng
        10
    shenjinpeng  
       2021-09-06 11:14:16 +08:00
    ng 还行吧, 一开始就是 mvc 风格的
    PowerByNeoZhang
        11
    PowerByNeoZhang  
       2021-09-06 11:50:35 +08:00
    文档个人反而觉得 angular >= react > vue
    vue 文档以 cdn 引入的方式作为例子,不够贴近真实应用场景,有时还得另外去查询
    jjwjiang
        12
    jjwjiang  
       2021-09-06 12:41:33 +08:00
    react hooks 才叫简单

    class 模式一旦开始写效果那真实噩梦
    yazoox
        13
    yazoox  
       2021-09-06 12:46:00 +08:00
    从零开始学前端,直接就是 react+ts+redux+redux+saga,不怎么会写 js ...
    beginor
        14
    beginor  
       2021-09-06 12:50:45 +08:00
    三个框架都折腾过一轮,最后还是 Angular 全家桶最香!
    siweipancc
        15
    siweipancc  
       2021-09-06 12:58:19 +08:00 via iPhone
    Angular 最香最重,类比下就是后台的 springboot 。React 最快最整洁,属于 Netty 这一层次。
    作为一个懒得要死的人,自己的项目我只考虑用 Angular 。
    Terry05
        16
    Terry05  
       2021-09-06 12:58:45 +08:00
    又要开始热闹起来了
    oooolongtea
        17
    oooolongtea  
       2021-09-06 12:59:48 +08:00
    最近也在学 vue,支持一下。
    elone
        18
    elone  
       2021-09-06 13:58:10 +08:00 via iPhone
    还是 ng 省心
    zhwithsweet
        19
    zhwithsweet  
       2021-09-06 15:07:58 +08:00
    建议直接 Vue3 开始,ts 支持 OK,文档 OK 。
    ccyu220
        20
    ccyu220  
       2021-09-06 15:22:18 +08:00   ❤️ 1
    热闹预定
    paranoiddemon
        21
    paranoiddemon  
       2021-09-06 15:28:37 +08:00 via Android
    @wszgrcy 感觉那个英雄之旅的例子可以放到前面一点,开始一堆概念给我看蒙了,后面跟着英雄之旅的例子写了一遍才理解。
    nzbin
        22
    nzbin  
       2021-09-06 15:50:38 +08:00
    作为一个从 vue 转 angular 的前端,最开始吸引我的就是 angular 的文档,仔细看几遍,真的很香
    pigspy
        23
    pigspy  
       2021-09-06 15:53:16 +08:00
    angular 的文档不行?我觉得文档方面 angular > react >> vue
    CodingNaux
        24
    CodingNaux  
       2021-09-06 15:59:03 +08:00
    vue 好难,看文档看的头晕
    vue 的 template 写好束缚
    目前维护 vue 项目没有 ts 提示好痛苦,写着没自信,生怕写错
    zxCoder
        25
    zxCoder  
       2021-09-06 17:18:24 +08:00
    非杠,为啥 jsx 就是好。。。UI 用 html xml 描述不是更加自然和容易理解吗
    3dwelcome
        26
    3dwelcome  
       2021-09-06 17:30:11 +08:00
    @zxCoder jsx 就是 html/xml 的进化版本

    第一你不可能手写 DIV
    第二把所有的模板 /三元运算符 /Web 组件都加到 html/xml 里后,就相当于是一个变种 jsx 了。
    zxCoder
        27
    zxCoder  
       2021-09-06 17:36:36 +08:00
    @3dwelcome 看到上面有人说 vue 模板和代码混在一起。。。那 JSX 这种不更是把模板和代码混在一起吗。。。或者说根本就没有模板。。。
    wunonglin
        28
    wunonglin  
       2021-09-06 17:49:54 +08:00
    ng 的文档是最舒服的了。
    无论是类型说明和最佳实践(但是确实不符国人的思维逻辑,但是一旦熟悉的这个逻辑,看起来会很香)

    学 ng 的前提是会 ts+rxjs,所以上手确实需要门槛

    我选 ng 。vue 太拉了
    robinlovemaggie
        29
    robinlovemaggie  
       2021-09-06 18:06:26 +08:00
    哈哈,三大流派都玩过的。
    从接触时间顺序来说:angular > react > vue,感觉难易度这个因人而异,当然也看当事人的 UI 实现复杂度。
    个人最喜欢 react,尤其 hooks 兴起,感觉彻底解放了 UI 看得见和看不见的交互死结。
    3dwelcome
        30
    3dwelcome  
       2021-09-06 18:10:27 +08:00
    @zxCoder "那 JSX 这种不更是把模板和代码混在一起吗"

    没办法,现在写个界面,总不太可能再回到拼字符串的年代。

    至于逻辑和界面是否能完全分离,那就要看码农的个人功力了。
    learnshare
        31
    learnshare  
    OP
       2021-09-06 18:19:15 +08:00
    @zxCoder 没有优劣,完全看个人喜好

    JSX 的感受是写 JS,从逻辑上更像是拼接字符串
    Vue/Angular 的模板更贴近原始 HTML 风格
    Flutter/SwiftUI 更像是在写绘图指令
    EPr2hh6LADQWqRVH
        32
    EPr2hh6LADQWqRVH  
       2021-09-06 19:01:46 +08:00   ❤️ 7
    React 和 jsx/tsx 完全就是 JS 的 PHP 化。
    没有任何语言会把逻辑、标签、样式,混到一起,除了 PHP 。
    React 是真正的 21st Century PHP


    Angular,Overengineering 的典范 , 还输出革命 Rxjs
    一个不小心就得给人忽悠瘸了


    Vue,成也山寨败也山寨,还带出了自建拓展名的歪风邪气,反标准化先锋
    bzw875
        33
    bzw875  
       2021-09-06 20:41:41 +08:00
    刚好我 3 个都用过,3 个都是 1 年。最喜欢 react,最麻烦的 angular 感觉像 js 版本的 spring,vue 不喜欢
    coolmenu
        34
    coolmenu  
       2021-09-06 21:25:19 +08:00
    用 next.js 挺方便的,可能限制比较多?但是我的前端水平非常一般,有限制也好
    hhyygg
        35
    hhyygg  
       2021-09-06 22:08:39 +08:00 via Android
    我也觉得 TS 文档不太行,查了好多也看不懂 t.ds 怎么用,自定类型死活不识别
    EPr2hh6LADQWqRVH
        36
    EPr2hh6LADQWqRVH  
       2021-09-06 22:37:07 +08:00
    @hhyygg 看来确实不行,d.ts
    charlie21
        37
    charlie21  
       2021-09-07 00:06:18 +08:00
    @avastms #32 php 受此殊荣 恰好说明了 php 是 ...
    lupkcd
        38
    lupkcd  
       2021-09-07 00:53:19 +08:00
    真有这么多人用 redux 啊?
    py2ex
        39
    py2ex  
       2021-09-07 02:01:21 +08:00
    你没有说你自己的前置知识。如果你是写 Java 的,会喜欢 angular,也会觉得亲切
    ccyu220
        40
    ccyu220  
       2021-09-07 09:45:28 +08:00
    @avastms 你果然还是出现了,我说这种帖子怎么会没有你
    EPr2hh6LADQWqRVH
        41
    EPr2hh6LADQWqRVH  
       2021-09-07 10:05:23 +08:00
    @ccyu220 还认识我了,真是个小机灵鬼
    sxfscool
        42
    sxfscool  
       2021-09-07 10:28:39 +08:00
    @avastms 那你用什么呢? jq 么
    fds
        43
    fds  
       2021-09-07 11:16:37 +08:00
    @toma77 抱歉,我做前端工作不多,还没用 svelte 开发过正经项目。
    1343EFF
        44
    1343EFF  
       2021-09-07 11:54:34 +08:00
    React 不需要记什么奇奇怪怪的命令,只要熟悉 js 就行,我觉得比 vue 舒服
    coldmonkeybit
        45
    coldmonkeybit  
       2021-09-07 13:32:10 +08:00
    完蛋,看下来没几个喜欢 vue 的,看来都是被逼着用的
    ccyu220
        46
    ccyu220  
       2021-09-07 14:26:48 +08:00
    @avastms 那可不,从 17 年左右就认识你了,这种帖子怎么会没有你的阔论。
    DOLLOR
        47
    DOLLOR  
       2021-09-08 01:57:37 +08:00
    @avastms
    react:自创扩展名,明明是我先的
    DOLLOR
        48
    DOLLOR  
       2021-09-08 02:11:52 +08:00
    这么多年了,我觉得三大框架的风评,非常符合那句经典的评论:
    世界上只有两种编程语言(框架,库……):一种是有人骂的,一种是没人用的。

    之前想招写 angular 根本招不到人,虽然网络上风评非常好。😂
    多数人还是写 react 和 vue,而且同时用这两个的也不少。🤔
    learnshare
        49
    learnshare  
    OP
       2021-09-08 09:42:43 +08:00
    @DOLLOR
    Angular 2.* 出的时间太晚,1.* 的用户都转走了。而且 2.* 完全另一个框架,上手更难了。
    Vue/React 用户多,职位也多,互相促进。Angular 用的少,招人更少,爬不起来了。
    alexkuang
        50
    alexkuang  
       2021-09-08 14:53:43 +08:00
    @avastms #32 非杠纯好奇,请问有什么更好的写 UI 的方法?才疏学浅,只接触过 1. DOM 和 jQuery 的 imperative UI 操作,不太喜欢; 2. php 之类的拼接字符串; 3. React / Vue 这种 declarative 的方式,最喜欢。
    zxCoder
        51
    zxCoder  
       2021-09-10 10:46:38 +08:00 via Android
    "React 不需要记什么奇奇怪怪的命令,只要熟悉 js 就行,我觉得比 vue 舒服"

    "Vue 不需要学什么奇奇怪怪的 js,只要写过后端模板引擎就行,我觉得比 React 舒服"
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1038 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 22:23 · PVG 06:23 · LAX 14:23 · JFK 17:23
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.