写 React 的学了一下 Vue,真香 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
lihongming
V2EX    Vue.js

写 React 的学了一下 Vue,真香

  •  
  •   lihongming 2020-05-12 06:57:50 +08:00 20152 次点击
    这是一个创建于 1981 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近接手一个项目,由于以前是用 Vue 写的,只好临时学了一下,结果发现……

    我艹,这玩意比 React 好用太多了。

    很多 React 里处理起来比较麻烦的问题,在 Vue 里都解决了。向 children 传参再也不用 Clone 了,Vuex 也比 Redux 好使,连路由参数都能直接传入 props……

    其实 React 的那些麻烦已经很多年了,只是老外似乎不太注重用户体验,不愿解决。还是中国同胞好啊!

    第 1 条附言    2020-05-13 03:46:07 +08:00
    没想到随手发个感慨能赚到这么多铜币,谢谢各位捧场!

    补充附言是想劝大家消消火,PHP 都能成为最好的语言,Vue 和 React 真没什么可吵的。

    更何况很多人争吵的点还局限在技术优劣上,这种思维方式可能是程序员职业生涯最大的局限。

    十年前我刚开始接客时,经常会在心里骂客户,觉得这人怎么这么笨,一点常识都没有,还想要那么高级的功能?现在我最喜欢的就是什么都不懂的客户,他们越笨,我赚钱的机会越大。只要把产品做得比别人更好用一点,就能轻易拿下客户。

    一款产品的成功需要很多因素,技术优劣只在其中占一部分,甚至是一小部分。这并不是说技术不重要,毕竟技术是个必要因素。但程序运行速度、技术开发难度对用户的影响,可能还不如一个设计优美的按钮大。

    很多人评论我是新手,确实,这两个框架我都没有深入研究过,都是实用主义,学到够用即止。我主用 React 也是因为 React 在北美更流行,更容易找工作、招人、赚钱,并不是觉得它比其他框架更“好”。

    什么叫“好”?这是个值得思考的问题。或者说,是一种选择。你可以深入研究追求性能,也可以偷懒求简把时间花在别的地方,毕竟时间是公平的,每个人都不比别人多。向左向右都是走,只要别停下学习的脚步就好。
    140 条回复    2020-05-14 20:51:31 +08:00
    1  2  
    Hanggi
        1
    Hanggi  
       2020-05-12 07:09:36 +08:00   4
    你试试 Angular 更爽。还有 Ember.js, youtube 用的 polymer.js, 以及 Meteor 都可以试试。
    lambdaxs
        2
    lambdaxs  
       2020-05-12 07:36:25 +08:00   6
    react 的强大在于它是基于函数式思想的,所以让我说 react 更简洁统一。但现实世界又是复杂繁琐的,这时候 vue 就好使,就是那个锤子,见啥钉子都能锤爆
    Perry
        3
    Perry  
       2020-05-12 07:38:38 +08:00
    停火可以不?每个人偏好都不一样,你觉得处理起来麻烦的问题可能在别人看来不是问题,瑞斯拜。
    Perry
        4
    Perry  
       2020-05-12 07:39:18 +08:00
    向 children 传参再也不用 Clone 了?啥意思?
    hoyixi
        5
    hoyixi  
       2020-05-12 07:40:22 +08:00   3
    你写的还不够多
    murmur
        6
    murmur  
       2020-05-12 08:13:37 +08:00
    写多才知道 vue 得好,react 适合复杂得东西,但多不等于复杂,iframe+复制粘贴能搞定的都不叫复杂
    murmur
        7
    murmur  
       2020-05-12 08:13:52 +08:00
    @Perry 我猜说的是不可变对象吧
    xstmjh
        8
    xstmjh  
       2020-05-12 08:27:02 +08:00
    感觉楼主一个都没说到点子上
    pkaq
        9
    pkaq  
       2020-05-12 08:29:21 +08:00
    向 children 传参再也不用 Clone 了?迷惑行为?
    fxxwor99LVHTing
        10
    fxxwor99LVHTing  
       2020-05-12 08:30:20 +08:00
    是个新手吧,说这种话
    zachlhb
        11
    zachlhb  
       2020-05-12 08:34:43 +08:00 via Android   10
    不喜欢 react 原因是很讨厌 js 和 html dom 混写,看着好蛋疼
    zhuangzhuang1988
        12
    zhuangzhuang1988  
       2020-05-12 08:41:28 +08:00 via Android
    @lambdaxs fp 就是放屁
    rioshikelong121
        13
    rioshikelong121  
       2020-05-12 08:41:34 +08:00
    迷惑行为大赏
    ccraohng
        14
    ccraohng  
       2020-05-12 08:50:26 +08:00 via Android
    emmmm
    clone 可以对 child 进行重写或者加强,传参,比如
    rc-trigger

    react 妙在一切都是 js,对于我来说都是可以预期的
    Yumwey
        15
    Yumwey  
       2020-05-12 08:53:58 +08:00 via Android
    你这说的充分体现了你是个新手。
    BarZu
        16
    BarZu  
       2020-05-12 08:57:17 +08:00
    React 太费心智,还是 Vue 傻瓜好用,另外,我竟然喜欢上了小程序的原生语法
    zj1926
        17
    zj1926  
       2020-05-12 09:10:47 +08:00
    向 children 传参再也不用 Clone 了? 这句话疑问不少
    fumichael
        18
    fumichael  
       2020-05-12 09:12:28 +08:00   18
    管你新手老手,能准时下班就是能手
    toacnme
        19
    toacnme  
       2020-05-12 09:25:32 +08:00   1
    对于优秀的前端,这两个没有谁好用的问题, 起码你得都会, 然后就看你们具体的业务需求和技术选型了.
    写了一年多的 Vue, 最近在写 React,发现 React 对于新手入门还是比较困难的
    会 React 的人去学 Vue 相对就比从 Vue 学 React 轻松了很多

    框架还是不能单纯以方便分胜负, 个人认为生态更重要.
    nanau2016
        20
    nanau2016  
       2020-05-12 09:29:23 +08:00 via iPhone
    redux 不要用也成了 react 的锅了吗
    SSW
        21
    SSW  
       2020-05-12 09:33:40 +08:00
    最近开始写 react,个人觉得,对我的原生和函数思维简是一次很大的提升。两种各有各的好处叭。具体的还得根据业务来
    murmur
        22
    murmur  
       2020-05-12 09:37:54 +08:00
    @toacnme 生态就一套 ui 而已,谁比谁差,真正拼好看还是设计师出力,通用 ui 不丑但是太俗了,你说 rn,flutter 吹又不愿意了
    joesonw
        23
    joesonw  
       2020-05-12 09:42:32 +08:00
    不知道组件属性,绑定的方法这些有智能提示吗? 能一键重构(改名)吗?
    IsaacYoung
        24
    IsaacYoung  
       2020-05-12 09:44:17 +08:00 via iPhone   1
    又开始了
    murmur
        25
    murmur  
       2020-05-12 09:44:54 +08:00
    @joesonw 就算是 java 程序员都不敢随便一键重构,你用 ts 的就敢么
    ke1vin
        26
    ke1vin  
       2020-05-12 09:45:30 +08:00
    写 React 的心智负担高一点
    stabc
        27
    stabc  
       2020-05-12 09:45:40 +08:00
    可惜没有"Vue native"
    ccyu220
        28
    ccyu220  
       2020-05-12 09:57:53 +08:00
    两个都会就不会撕逼,想用哪个用哪个。而且有 antd 这么优秀的 UI 框架。所以,这都能撕逼的都是菜鸡。
    Torpedo
        29
    Torpedo  
       2020-05-12 09:59:27 +08:00
    @murmur ts 看你怎么写了。从我感觉来看,同样是 ts,大家使用的水平差别太大了
    murmur
        30
    murmur  
       2020-05-12 10:00:51 +08:00
    @Torpedo ts 本身也可以写 js,js 就太活了,尤其是带点框架性质的,传个字符串执行某个方法,那种肯定不能简单就重构
    java 也一样,可以 xml 、可以反射
    toacnme
        31
    toacnme  
       2020-05-12 10:01:51 +08:00   1
    @murmur 所以这两个框架,作为前端的话还是都要掌握, 各有优点.
    真要让我二选一的话 , 我还是选择 React , 现在很多小公司用的都是 Vue, 公司为了省钱
    一般都是几个后端配一个前端, 因为 Vue 入门简单, 让后端也去写 Vue, 但是大部分这些后端都是处于 MVC+Jquery 的阶段, 对前端工程化 ES6 等语法都不了解,他们写的 JS 就跟膏药一样,o()o 唉,亲身经历.
    如果选择用 React 的 ,我觉得起码能最大程度避开这些坑.
    Torpedo
        32
    Torpedo  
       2020-05-12 10:02:23 +08:00
    @murmur 所以还是看你怎么写。但是重构而言,react 里类型比 vue 要容易写的多
    murmur
        33
    murmur  
       2020-05-12 10:08:35 +08:00
    @toacnme 这就是实际开发和理论的区别了,只要能过了测试的,做的再烂也不重构,宁可推倒重来
    放到互联网公司就更现实了,半年可能项目甚至公司都没了,根本不需要考虑后期维护
    bnm965321
        34
    bnm965321  
       2020-05-12 10:26:35 +08:00
    心智负担最低的是 react 吧,框架带来的东西很少,需要记忆的东西很少。就是 hooks 之后又一点坑
    Hanggi
        35
    Hanggi  
       2020-05-12 10:28:37 +08:00
    @bnm965321 react 带的东西少?请你说说 react 留下了传统前端 html, css 中的哪些?
    murmur
        36
    murmur  
       2020-05-12 10:29:04 +08:00
    @bnm965321 如果你从后端兼职的角度来看,es6 和 ts 都是要学习的,而 vue 的模板对于后端来说是家常便饭,别人 freemarker 、velocity 、jsp 都用过,什么样的模板没见过
    bnm965321
        37
    bnm965321  
       2020-05-12 10:31:03 +08:00
    @Hanggi 学完 jsx 以后没有任何记忆负担
    minglanyu
        38
    minglanyu  
       2020-05-12 10:31:14 +08:00
    刚毕业的时候用 Vue 改造一个公司用的 Oracle 的管理页面。

    改造完寻思用 React 改造一版顺便也学一下,结果在 Redux 的地方坑住动不了
    max21
        39
    max21  
       2020-05-12 10:31:45 +08:00
    @stabc 有 weex 啊,虽然没啥人用
    bnm965321
        40
    bnm965321  
       2020-05-12 10:32:17 +08:00
    @murmur 我也用过很多模版语言,但是都不想再用
    nnnToTnnn
        41
    nnnToTnnn  
       2020-05-12 10:33:14 +08:00
    React Hook: "你在说什么? "
    antd: "我官方支持 React"
    umi: "未来我会考虑支持 Vue 。"
    murmur
        42
    murmur  
       2020-05-12 10:36:12 +08:00   3
    拿 ui 框架说事的,简单的 ui 你自己都可以封装,而且 ui 的好坏取决于设计师
    真正难开发几个东西:
    1 、企业级要求的 table (功能对标 excel ),行列拆分、合并、冻结、原地编辑,这是必修课
    2 、企业级要求的图表(线图、横竖柱状图、饼图都不用说,至少得支持线柱混合)
    3 、富文本编辑器,要求不高,word 可以直接复制
    这些都是跟框架无关的
    dany813
        43
    dany813  
       2020-05-12 10:39:18 +08:00
    react 香的一笔,会 JS 就能写
    auroraccc
        44
    auroraccc  
       2020-05-12 10:47:25 +08:00
    除了 redux 还有 mobx 呀,体验跟 vuex 感觉差不太多
    lupkcd
        45
    lupkcd  
       2020-05-12 10:47:38 +08:00
    在我看来 Vue 比 React 差就差在 RN,其他各方面都更好,Vue 3.0 出来,说 ts 支持的问题也不存在了。
    Pyrex23
        46
    Pyrex23  
       2020-05-12 10:48:38 +08:00 via iPhone
    龟龟 又开始了?
    Midnight
        47
    Midnight  
       2020-05-12 10:50:44 +08:00   4
    所以说,angular 在 3 年后等你们一点毛病都没有
    Orenoid
        48
    Orenoid  
       2020-05-12 10:55:38 +08:00
    你们先等下,我去拿瓜子和板凳
    endlessJ219
        49
    endlessJ219  
       2020-05-12 11:05:26 +08:00
    《如何让程序员吵起来》
    Smilencer
        50
    Smilencer  
       2020-05-12 11:08:25 +08:00
    前端娱乐圈日常
    jimrok
        51
    jimrok  
       2020-05-12 11:09:14 +08:00
    更适应 React,Vue 的指令看起来像一个问题搞出一个办法
    sam014
        52
    sam014  
       2020-05-12 11:24:55 +08:00   1
    vue 写久了不会烦吗?我是一直想换 react 换换脑子
    lancelock
        53
    lancelock  
       2020-05-12 11:26:58 +08:00
    我写 react 从来没用过 redux,莫名其妙搞得那么复杂
    namelosw
        54
    namelosw  
       2020-05-12 11:32:05 +08:00 via iPad
    说 React 麻烦的可以把 Ramda 这种库练一练,做到 60%的函数没函数体,80%函数没花括号之后你会对 React 有新的理解。
    betulac
        55
    betulac  
       2020-05-12 11:32:19 +08:00
    推荐一种 React 的使用,https://github.com/BetulaZbot/EDV
    no1xsyzy
        56
    no1xsyzy  
       2020-05-12 11:41:42 +08:00
    @lambdaxs #2 看到 Hooks 的时候
    “谁再说 React 是函数式的我把他脑门锤爆.jpg”
    把 Vue 库里完成的那套露一半出来让你自己完成……
    zhw2590582
        57
    zhw2590582  
       2020-05-12 11:42:49 +08:00   1
    过来人可以说一句:redux 真是浪费我好多青春
    qbhy
        58
    qbhy  
       2020-05-12 11:47:35 +08:00
    还是用的不多
    qbhy
        59
    qbhy  
       2020-05-12 11:48:21 +08:00
    说 redux 的,可以去 github 搜一下 dva,封装后还是很香的
    ciqulover
        60
    ciqulover  
       2020-05-12 11:55:35 +08:00 via iPhone
    大概上班太闲了不如去刷知乎。楼主是个新手就别尝试管中窥豹了。
    murmur
        61
    murmur  
       2020-05-12 11:57:42 +08:00
    @ciqulover 楼主要养猫你让人家窥豹干嘛,什么样的需求就应该用什么框架
    crella
        62
    crella  
       2020-05-12 12:05:52 +08:00 via Android
    php 仍然是最好的语言(
    hikaruchang
        63
    hikaruchang  
       2020-05-12 12:35:05 +08:00 via iPhone
    看你项目,合适的项目对应合适的工具
    stantbyme
        64
    stantbyme  
       2020-05-12 12:54:45 +08:00
    开始了 开始了
    find456789
        65
    find456789  
       2020-05-12 13:02:54 +08:00   1
    redux 、阿里的 dva 太难用了, 为啥不用 mobx
    murmur
        66
    murmur  
       2020-05-12 13:02:54 +08:00
    @stantbyme 还没开始呢,考虑下晚上写点啥,总写回复战斗力不够,必须得写主题帖
    mywaiting
        67
    mywaiting  
       2020-05-12 13:07:21 +08:00
    什么鬼 React/VUE,好好用 jQuery 不好么?

    等 WebComponents 这套再成熟一点,Deno 的生态好一点,直接从 jQuery 跳 WebComponents 香爆

    ~关键是还能继续用 jQuery~~~~

    什么老前辈 /思想顽固不化 /喜欢守旧 /害怕改变,说的就是我这样的只会 WordPress 的上古前端
    wangyzj
        68
    wangyzj  
       2020-05-12 13:27:54 +08:00
    fp 吹好多
    jziwenchen
        69
    jziwenchen  
       2020-05-12 13:35:48 +08:00   1
    来 angualr8 啊 很香
    noobma
        70
    noobma  
       2020-05-12 13:57:33 +08:00   1
    @jziwenchen angular 9 了啊
    Junh
        71
    Junh  
       2020-05-12 13:59:18 +08:00 via iPhone
    还是 angular 香
    noobcoder1
        72
    noobcoder1  
       2020-05-12 14:09:43 +08:00
    dva umi 了解一下
    shabbyin
        73
    shabbyin  
       2020-05-12 14:15:30 +08:00
    为什么向 children 传递 props 要 clone 一下 是因为 children 修改 props ?为什么会有这么迷惑的行为
    Zien
        74
    Zien  
       2020-05-12 14:17:00 +08:00 via Android
    @lambdaxs 哈哈哈哈,这个比喻
    Bigglesworth
        75
    Bigglesworth  
       2020-05-12 14:29:36 +08:00
    @fumichael #18 哈哈哈哈哈
    namelosw
        76
    namelosw  
       2020-05-12 14:34:11 +08:00
    @no1xsyzy 为啥说 React 是函数式就要锤爆?写过 OCaml 没有? Hooks 是 Algebraic effects 的实现。跟 Monad 作用类似。
    dtysky
        77
    dtysky  
       2020-05-12 14:48:42 +08:00
    2020 年了,别吵三年前的话题了。
    no1xsyzy
        78
    no1xsyzy  
       2020-05-12 15:08:37 +08:00
    @namelosw #76 Don’t call Hooks inside loops, conditions, or nested functions.
    https://reactjs.org/docs/hooks-rules.html
    如果说不完整的实现 甚至说只有幻想上的模拟(可以让函数式语言用户以函数式方式思考写出正常运作的代码,但注意你的脑子不能被非函数式污染),也能说是的话,那就是吧。
    C 语言是一个(非常不完整地实现的) Lisp !
    loveToMy1
        79
    loveToMy1  
       2020-05-12 15:10:41 +08:00
    你们不要吵了 要吵去练舞室去吵 (滑稽)
    namelosw
        80
    namelosw  
       2020-05-12 15:16:19 +08:00
    @no1xsyzy 这两条已经很 trivial 了吧。基本上类似 Redux 不能 mutate 这种一下就能记住的简单规则。这里面 leverage 的是函数式风格,而不是追求纯函数式编程。毕竟 React team 也 evaluate 过 Monadic React……

    这个就跟说 Clojure 是函数式语言一样,大部分人能认同,有一小部分 Haskell 党不能认同。
    no1xsyzy
        81
    no1xsyzy  
       2020-05-12 15:59:16 +08:00
    @namelosw #80 单这一条就够诡异的了。
    我倒是非常讨厌函数式编程 /风格,但 hooks 就还好,只感觉非常脏。
    看上去 Algebraic effects 实质上是向环境暴露续延,相当于 call/cc 和 parameter 的结合体。但 JavsScript 没有 First-class Continuation 的话连风格都是做不到的。
    哪怕一个很简单的要求,就 https://reactjs.org/docs/hooks-rules.html 里面,只改 surname 的话是不应该运行 persistForm 的,但测试了一下并不能。
    l1nyanm1ng
        82
    l1nyanm1ng  
       2020-05-12 16:02:35 +08:00   1
    对象是穷人的闭包,闭包是穷人的对象,react 不用 class 组件了,结果在函数组件里面写了一大堆的 function,这么一看好像和对象方法没什么区别了,哎,终究逃不过这个定律,但是 hooks 肯定是好的,虽然有很多问题,但是 hooks 的 ts 类型约束比 hoc 简单太多了
    devwolf
        83
    devwolf  
       2020-05-12 16:13:19 +08:00
    比什么,反正最后全都要学
    pecopeco
        84
    pecopeco  
       2020-05-12 16:18:00 +08:00
    至少,在 rn 面前,vue 的生态暂时一个能打的都没有
    ljpCN
        85
    ljpCN  
       2020-05-12 16:18:25 +08:00 via Android
    我也 react 转 vue,喜欢 react 。你说的这些应该是说明了 vue 开箱即用的程度更高。至于谁更好用,见仁见智。
    namelosw
        86
    namelosw  
       2020-05-12 16:22:43 +08:00
    @no1xsyzy 毕竟当 Library 实现,而不是语言实现,没办法。感觉如果要走 Svelte 那种编译器路线理论上还可能实现完整的版本,但是感觉更不透明。

    我想采访一下为什么讨厌函数式编程呢?我个人的体验是除去写底层 API,再除去 mutable 算法很好写的情况,普通的业务用函数式风格各方面都要好一点,好读 /好重构 /好扩展 /好测试 /好 reload 代码等等。
    rain0002009
        87
    rain0002009  
       2020-05-12 16:34:24 +08:00
    玩了 3 年 vue 最近开始学习 react (因为大家都在说这东西贼香),因为对 vue 的 nuxt 有好感(我都把它当 cli 用)所以用 next 搭建项目,我以为会像 nuxt 一样 一装就啥都有了呢,还会问你用 ts 还是用 js,以下 ui 框架都很好要不要装一个(好 那就装个 ant ),还可以使用其他服务框架,express koa hapi 啥的(不懂,默认吧),我们还集成了 axios 和 pwa 要不要用(那就装个 axios 吧),eslint,prettier 啥的要用不(虽然就我一个人玩,还是用一下吧),测试框架要不要装一个有 jest 和 ava (玩不来,算了),要使用 ssr 不(要吧,不然就真当 cli 了)

    一进项目主目录,基本结构都有了呀,assets/ 放图片啥的,components/ 放组件,layouts/ 可以自定义布局,middleware/ 可以写中间件 判断登录啥的,pages/ 写页面,plugins/ 放第三方插件,static/ 还可以放静态资源 基本不会变动的那种,store/ 里面放 vuex
    还要啥自行车,每个文件夹里还有一个 readme 告诉你这个文件夹是干啥的,服务端大佬都哭了呀,谁跟我说现在写前端配置就得学半天的,说着撸起了自己的博客

    现在我配置个 next 搞了老半天,想用个按需加载 ant,直接就报错了 说什么 不能从 node_modules 里面 import css,没耐心找解决方法就全局引用了,尝试了 styled-jsx,又搞了半天 vscode 代码高亮和代码提示,搞半天还是不支持 postcss 的嵌套语法,气不过就不用了 直接用 sass 了

    也就组件不用像 vue 那样手动注册一下,爽一点,其他的初学也没体验到啥
    组件通讯是真的考验我的心智,原来没有 emit 是这么麻烦的吗

    我已经忘了这项目是为了干啥了,我已经迷失在 react 优化里了,顺便问问各位 react 的大佬,我写了这么一个组件,里面有个输入框,输入特定字符就会在那个地方弹一个框出来,整个页面里面会添加有很多这样的组件,功能是可以,就是选一个组件输入,所有组件都会运行一下 render,这正常吗(还没学 redux,所以用的 hooks 模拟的 redux )
    yazoox
        88
    yazoox  
       2020-05-12 17:24:27 +08:00 via Android
    @namelosw ramda ?这是啥?你说的练一练什么意思?
    namelosw
        89
    namelosw  
       2020-05-12 17:33:44 +08:00
    @yazoox Ramda 只是一个比较贴合函数式风格的函数库而已。只是说大部分人写所谓函数式 React 都是很入门的内容,所以写起来很尴尬很麻烦。写过 Haskell 的人一般都能写出来很漂亮的 React 代码。

    Scala 红皮书里面说过,如果函数式编程写得很笨很蹩脚,一般都是缺乏某种抽象。

    函数式风格真正用起来是各种很流畅的函数组合,用函数高效流畅地地组装出绝大部分函数,大部分都是高阶函数各种传参生成一个需要的函数,而不是每次从头手写。
    hikarugo
        90
    hikarugo  
       2020-05-12 17:39:24 +08:00
    @Hanggi 感叹一下前端的框架真是太多了。。
    no1xsyzy
        91
    no1xsyzy  
       2020-05-12 18:20:54 +08:00
    @namelosw #86 一方面是和我的理想形态(纯响应化)有点远,我非常希望写出一个函数之后,传入 atom 传出 atom,传入 source 传出 source,传入 sink 传出 sink 。打个比方,Javascript 有 element.addEventListener('event', handler) 这样处理的,我觉得就应该变成
    handler(element.eventSource('event')) |> sink
    或者
    element.eventSource('event') |> handler(sink)
    或者更平衡的写法
    element.eventSource('event') |> handler |> sink
    也就是说,handler(source) 相当于每当 source 产生数据即丢给 handler,而该表达式的值是 handler 的结果作为新的 source,而 sink 会反过来,构造一个新的 sink,这个新的 sink 传入的任何数据都会经过 handler 然后将结果再传入原 sink 。
    或者就是 Qt 信号槽。
    但这种一条语句永久运行的模式,现在称为函数式的那些都反对这么做。
    (话说 REPL 也有点难搞)

    另外,不是很重要地,函数式 “编程” 有点强行造词的意味。我上面除了 #81 说讨厌外没有在 “函数式” 后面跟上 “编程”。
    从我明白了 Excel 是真真正正的函数式之后就这样了。
    menyakun
        92
    menyakun  
       2020-05-12 18:38:43 +08:00
    日常又开始了,狗头
    hantsy
        93
    hantsy  
       2020-05-12 18:56:18 +08:00   1
    唯一爽的只有 Angular,从 Spring Boot 切换过去一天上手,DI,Module 概念太相似了。Angular 内置使用 Rxjs, 天生就是异步,Reactive 编程(对于使用过 ReactiveX 下的组件的后端开发人员,太亲切了)。

    React 虽然一直在改进 Type 支持,现在对 TS 支持也很好,但是它不够 OOP,Function 是一等公民。JS 印迹太深。

    VUE 没正经使用过,看过比较各框架的 TODO 例子,第一眼觉得与早期 Polymer 1 相似(语法杂交了 AngularJS 1 概念),实在没好感,实在找不到什么理由用它。

    期待 WebComponents 流行起来。
    hantsy
        94
    hantsy  
       2020-05-12 19:00:44 +08:00
    工具方面,Angular 生态圈很强大,很 Angular 扩展都支持 Angular Semantics,用 NG ADD 完成自动配置,用 NG UPdate 来自动升级。希望 React 下面能有一样工具加入 CRA 。
    duan602728596
        95
    duan602728596  
       2020-05-12 19:13:39 +08:00
    @rain0002009 https://github.com/ant-design/ant-design/issues/22802#issuecomment-621622699
    next 里面使用 antd 按需加载的方法。因为 node_modules 里面的组件是使用 node 的 commonjs 的方式加载,而不是用 webpack 编译打包的,所以会报错
    louieliu
        96
    louieliu  
       2020-05-12 19:28:32 +08:00 via iPhone
    是 React 太灵活 不好掌握到精髓 使用起来心智负担比 Vue 大
    mandex
        97
    mandex  
       2020-05-12 19:43:34 +08:00
    我用 React,因为 JSX 表现力远远强于 VUE 的模板语法,而且不需要重新学习各种指令,会 JS 就可以了,充分利用了 JS 的一切优点。
    namelosw
        98
    namelosw  
       2020-05-12 19:49:14 +08:00
    @no1xsyzy 感觉这个形式和函数式也不矛盾啊,只是有个 sink 而已。比如 CycleJS 基本就是这样无限 sink,而且还有回绕,但我理解它还是非常函数式的,main 函数里面全都是 pure 的。

    不过对比 Cycle,我觉得 React 只解决了 Model -> View 的 Reactive,没有实现像 Cycle 一样 View -> Model 的 Reactive 。

    我理解大部分函数式其实都是指处理逻辑的核心是函数操作数据,操作以 transform ADT 为主就是非常函数式了。基本上也能获得函数式的核心好处-靠 referential transparency 和 local reasoning 让 business logic 更容易理解,测试和修改。

    至于这个核心外面的 container 五花八门,Haskell 靠 ST,比如 Erlang 靠 process,Clojure 靠 Atom,ML 靠 ref,我理解都算函数式。但是这些和业务关系就变小了,是一些技术上的设计。只不过追求 Pure 的函数式是另外一回事。
    ragnaroks
        99
    ragnaroks  
       2020-05-12 19:52:34 +08:00
    csharp => vue
    java => react
    namelosw
        100
    namelosw  
       2020-05-12 19:58:10 +08:00
    @hantsy React,AngularJS 和 Angular 我都写了很多年,RxJS 我也用了很多年。

    Angular 问题很多,特别写库和写业务完全就是两套不同的代码,感觉 Angular 很多东西写出来都特别困难,难受得一批。API 很多,我们都是后端团队,学起来上手快,后面还是各种踩坑。

    Mark for check 机制完全就是自动挡变手动挡,而且机制完全没 React 和 Vue 直接,一不小心就无限刷,或者 onPush 就不更新得手动调 Zone 。

    Rx 本身也不够建模用,写多了极乱,最后还是需要 Ng*s 之类的东西。

    而且实话说 OO 相比 FP 扩展性很差。


    React vs Vue 感觉还有的比,Ng 用没 React 和 Vue 人多是有原因的。
    1  2  
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5592 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 34ms UTC 08:08 PVG 16:08 LAX 01:08 JFK 04:08
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86