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

写 React 的学了一下 Vue,真香

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

    最近接手一个项目,由于以前是用 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 红皮书里面说过,如果函数式编程写得很笨很蹩脚,一般都是缺乏某种抽象。

    函数式风格真正用起来是各种很流畅的函数组合,用函数高效流畅地地组装出绝大部分函数,大部分都是高阶函数各种传参生成一个需要的函数,而不是每次从头手写。
    fyxtc
        90
    fyxtc  
       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   ·   实用小工具   ·   1093 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 19:00 · PVG 03:00 · LAX 11:00 · JFK 14:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.