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

借着 vue 和 react 的思路,跟着 b 站视频学了三天 angluar11 后,我来吐吐槽。。。

  •  
  •   zhoushushu · 2021-03-09 14:53:02 +08:00 · 15374 次点击
    这是一个创建于 1353 天前的主题,其中的信息可能已经有所发展或是发生改变。

    才学三天,也不知道说的对不对

    • 模板语法好学,毕竟 vue 是借鉴 angular 的;
    • 分 module 思路也能理解,但是一分模块,组件的文件、路由的文件等都得往里面加,这个不是加大工作量嘛? Vue 、React 也不需要一个专门的文件来维护啊。
    • 网络请求模块能不能用 axios 等第三方网络请求库,这个 rxjs 实在学不下去,用 axios,aysnc 、await 不更简单?
    • 注入这块,我都 import 进来了,还得在 provide 里面注入,麻烦死了;
    • 还有令牌这块,我直接写个常量,import 进来,不更简单?
    • 4 和 5 其实是同一个问题,import 进来了,还得写一些其他代码才可以使用,直接用不行啊?
    • 编译太慢,也不知道什么代码编辑器适合 angular 开发,反正 vscode 经常卡死,不过我电脑也挺老的了

    将来我我来用 angular 开发的话,估计思路的话,不会像 angular 传统项目那样各种注入,应该还是和 vue 、react 差不多吧,angular 自带的库不用,各种第三方请求库,import 、export,能不注入就不注入了,维护下 module 就好。

    120 条回复    2021-04-06 14:29:33 +08:00
    1  2  
    erwin985211
        1
    erwin985211  
       2021-03-09 14:55:41 +08:00   ❤️ 1
    垃圾前端表示,用 angluar 是我离职的第一原因。我用的是 angluar6
    Perry
        2
    Perry  
       2021-03-09 14:58:10 +08:00 via iPhone   ❤️ 18
    简单概述一下:我不会用的或者学不会的东西就是难用的东西
    ychost
        3
    ychost  
       2021-03-09 15:03:22 +08:00   ❤️ 1
    等两年后再看你的代码,看看那种写的还能一眼看懂,好维护,
    zhuweiyou
        4
    zhuweiyou  
       2021-03-09 15:03:41 +08:00   ❤️ 1
    vue react 也有注入功能
    debuggerx
        5
    debuggerx  
       2021-03-09 15:05:19 +08:00   ❤️ 4
    个人开发和工程项目开发的区别。个人开发怎么方便怎么快怎么来,但是多人大项目一直迭代,很多“简单”、“减少工作量”的做法直接会导致项目失控,被这样坑过的人才能真正理解“学院派框架”的优点。
    如果看一些资深架构设计的或者大公司的 vue/react 项目,其实很多也早已经变成了“麻烦”的样子。
    Oktfolio
        6
    Oktfolio  
       2021-03-09 15:09:03 +08:00
    rx 和 IOC DI 不就是 Angular 的核心吗?
    tiedan
        7
    tiedan  
       2021-03-09 15:09:28 +08:00   ❤️ 11
    又开始了
    zhoushushu
        8
    zhoushushu  
    OP
       2021-03-09 15:12:42 +08:00
    @debuggerx 说的对的,公司现在的 vue 、react 项目确实失控了,也需要“学院派框架”来治理一下了。
    Oktfolio
        9
    Oktfolio  
       2021-03-09 15:15:26 +08:00
    没逼你用 httpclient,用 fetch 应该也可以,axios 就算了吧。Observable 比 Promise 强大多了。
    cslive
        10
    cslive  
       2021-03-09 15:21:14 +08:00
    angluar 还好吧,适合后端学,特别是搞 java 得,上手特别快
    zjsxwc
        11
    zjsxwc  
       2021-03-09 15:22:01 +08:00
    虽然我不是前端,但三个都用过的我,从工程性考虑,我站 angular
    zhoushushu
        12
    zhoushushu  
    OP
       2021-03-09 15:23:29 +08:00
    @Perry 不大容易能找到最近 10 或者 11 的学习资料,官网文档?就一个小练习,没有工程上的案例。
    erwin985211
        13
    erwin985211  
       2021-03-09 15:30:21 +08:00   ❤️ 3
    只要 angular 的帖子,必有我是后端,我挺喜欢 angular 的。想听听前端大佬对 angular 的看法,为啥 angular 这么边缘
    ecuplxd
        14
    ecuplxd  
       2021-03-09 15:41:19 +08:00
    其它不说,但 VS Code 是最适合做 Angular 开发的。
    yaphets666
        15
    yaphets666  
       2021-03-09 15:45:52 +08:00
    你这几条无非是开发效率问题.为啥 react 和 ag 在国内干不过 vue,主要是开发效率不行.
    react 和 ag 在发达国家是很流行的,我观察了很多加拿大,美国的招聘信息,基本没有用 vue 的.
    zzzmh
        16
    zzzmh  
       2021-03-09 15:47:31 +08:00   ❤️ 2
    java 出身的 前端小白 表示 ,看的一愣一愣的,学 vue 学了一年,以为自己会写了,后来发现没学 vue cli,就等于不会,又学了 1 年 vue cli 。至今还迷迷糊糊 模棱两可
    Austaras
        17
    Austaras  
       2021-03-09 15:53:26 +08:00
    连 DI 是干什么的都不知道,这就是当代前端吗
    Austaras
        18
    Austaras  
       2021-03-09 15:54:05 +08:00
    不过 module 确实不太有用,似乎官方也在淡化这个东西
    mlxj
        19
    mlxj  
       2021-03-09 16:09:56 +08:00
    路子走偏了啊,B 站是用来学习这个的?
    zhoushushu
        20
    zhoushushu  
    OP
       2021-03-09 16:13:39 +08:00
    @mlxj 其他地方就没有找到,上面各个都说好,也不知道他们在哪里学的。
    crclz
        21
    crclz  
       2021-03-09 16:16:14 +08:00
    哈哈哈,除了最后一点,其他的自己去领悟。

    某个框架的某些特性看似设计垃圾,当你明白了为什么要这么设计的时候,就证明你代码能力提升了。
    amundsen
        22
    amundsen  
       2021-03-09 16:17:29 +08:00
    三个框架都用过,比较喜欢 angular 。
    Desiree
        23
    Desiree  
       2021-03-09 16:23:54 +08:00
    学了三天...
    wunonglin
        24
    wunonglin  
       2021-03-09 16:29:00 +08:00
    官网文档不看去 B 站。。。66666
    zhoushushu
        25
    zhoushushu  
    OP
       2021-03-09 16:33:34 +08:00
    @wunonglin 官网有项目案例?
    wunonglin
        26
    wunonglin  
       2021-03-09 16:40:40 +08:00
    @zhoushushu #25 你要啥案例? github 上大把
    codeMan5495
        27
    codeMan5495  
       2021-03-09 16:45:14 +08:00
    angular 也许就是过滤这种的
    zhoushushu
        28
    zhoushushu  
    OP
       2021-03-09 17:17:06 +08:00
    @codeMan5495 哎呀,这话讲的。。。就是一个框架嘛,工作嘛,开心点不好啊。
    kingzeus
        29
    kingzeus  
       2021-03-09 19:01:56 +08:00
    我感觉复杂的业务逻辑全靠 rxjs 了。
    April5
        30
    April5  
       2021-03-09 20:35:55 +08:00
    先了解下 IOC
    KuroNekoFan
        31
    KuroNekoFan  
       2021-03-09 21:27:49 +08:00 via iPhone
    axios 的 interceptor 的理念真的荼毒甚广……
    youngxhui
        32
    youngxhui  
       2021-03-09 21:34:20 +08:00 via Android
    @zhoushushu 官网的确有案例
    GiantHard
        33
    GiantHard  
       2021-03-09 22:04:31 +08:00   ❤️ 1
    我感觉楼主的疑惑主要在两点:

    1. 为什么要“控制反转”?答案很简单,为了避免代码耦合。
    2. promise 非常方便,为啥还要 rxjs ? promise 确实方便,但是功能过于简单,没法为 Angular 应用提供状态管理的能力。
    lvsshuttao
        34
    lvsshuttao  
       2021-03-09 22:15:46 +08:00
    分模块可以懒加载,公共的服务 /组件都可以组合成一个模块

    rxjs 和 axios 感觉都 OK,rxjs 可以对结果进行二次加工处理,特别是在 后端 /服务商 返回不同的数据格式时特有用

    注入这块还有令牌这块,最方便的地方就是随意替换,比如共享模块 A 里面有一个服务 B,注入了 C ;
    当 AA1 模块使用到 A 模块时,你可以把 A 模块中的 C 替换为 aa1 ;
    当 BB1 模块使用到 B 模块时,你可以把 A 模块中的 C 替换成 bb1;
    再配合那个 env... 配置文件,你想切换测试 /生产服务器、切换不同版本的 api 是很简单的
    nzbin
        35
    nzbin  
       2021-03-09 22:22:43 +08:00
    @zhoushushu 不用刻意找 10 或者 11 的资料,2 以上都是一样的。官网就是最好的资料,进阶的话就看 indepth 和 medium 上面的文章,知乎上面也有一些翻译。
    lewinlan
        36
    lewinlan  
       2021-03-09 22:22:49 +08:00 via Android
    讲规矩才上得了规模
    hantsy
        37
    hantsy  
       2021-03-09 22:27:45 +08:00
    正常,很多学 Angular 都是止步于 Typescript 和 Rxjs 。
    hantsy
        38
    hantsy  
       2021-03-09 22:30:05 +08:00
    rxjs 和 axios 根本就不是一个类型东西都是能扯到一起比较。

    Angular 中有 HttpClient, HttpIntercepter 实现 API 调用,安全不要太简单啊.
    hantsy
        39
    hantsy  
       2021-03-09 22:30:46 +08:00
    劝楼主去用 Vue 。我估计你 React 也用不来。
    nzbin
        40
    nzbin  
       2021-03-09 22:40:52 +08:00
    楼主,你这吐槽真的是完全没搞明白啊,简单答一下吧

    1. angular 的模板很强大的,循环递归复用非常方便,而且有 language service 的加持,代码提示很友好
    2. 模块拆分非常适合大型项目,至于你说的要加很多文件,难道不用 cli 的自动化吗?觉得不够用的话还可以自己扩展 schematics,这一点 react 和 vue 真比不了
    3. httpClient 和 axios 不是一个体量的东西,你只是不熟悉而已,至于 RxJS,稍微复杂点的请求处理立马就能感受到它的优势,而且同样可以搭配 aysnc 、await
    4. 依赖注入就不说了,多用用自然明白
    5. 编译太慢?反正我是从没遇到这个问题,vscode 开发非常舒服
    Adalwin
        41
    Adalwin  
       2021-03-09 23:41:42 +08:00
    不看官网看 B 站....

    唉...
    easylee
        42
    easylee  
       2021-03-09 23:56:57 +08:00 via Android
    @zzzmh 写了两年 Java,才发现没学 spring......
    xiang0818
        43
    xiang0818  
       2021-03-09 23:59:02 +08:00
    后端的同学都比较喜欢 ng 哦~
    xiang0818
        44
    xiang0818  
       2021-03-09 23:59:54 +08:00
    @easylee 那你一定是大佬~
    LokiSharp
        45
    LokiSharp  
       2021-03-10 00:00:32 +08:00 via iPhone
    Angular Spring .NET 这类真企业级框架麻烦的地方都是大公司开发踩了 10 几年总结的经验,几天跑理解不了的
    laike9m
        46
    laike9m  
       2021-03-10 00:55:08 +08:00 via Android
    angular 就是给 Java 程序员设计的
    yuuko
        47
    yuuko  
       2021-03-10 01:01:43 +08:00 via Android
    等你用 angular 写项目了,真正的问题就来了,编译十几二十分钟,热更新烂的一逼,运存占用巨大,电脑卡顿等等
    kwrush
        48
    kwrush  
       2021-03-10 08:12:49 +08:00
    rxjs 很强大,和 axios 都不是一路东西,刚好自带 ajax 而已
    jun4rui
        49
    jun4rui  
       2021-03-10 08:57:34 +08:00
    一个框架就是一个思路,所以任何框架都不能用别的框架思维去套,顶多有点类似的地方。

    所以新人学东西有时候比较快就是这个原因,没有任何先入为主的固有思维。

    这种思维年纪大了会比较致命。
    hareandlion
        50
    hareandlion  
       2021-03-10 09:25:35 +08:00
    同在学 Angular,感觉框架设计代表的是设计模式,额外的声明可以认为是编码规范吧,module 设计与逻辑抽象的实现有关,可能不同框架的实现方式都不同,没看出高下之分
    ReysC
        51
    ReysC  
       2021-03-10 10:20:16 +08:00
    网络库可以用 await/async 使用 toPromise 即可,提供了灵活的方式
    lscexpress
        52
    lscexpress  
       2021-03-10 10:49:10 +08:00
    @jun4rui
    反正我学新技术,都是先看官方文档,不会想太多
    ahonn
        53
    ahonn  
       2021-03-10 10:54:59 +08:00
    想要简单你就不应该看 Angular
    meshell
        54
    meshell  
       2021-03-10 11:09:51 +08:00
    https://github.com/akveo/ngx-admin , https://github.com/akveo/nebular 我一直通过这两个项目来学习 ng...不过先要知道 ng 的基本知识概念,官方文档走一遍.
    namelosw
        55
    namelosw  
       2021-03-10 11:50:51 +08:00   ❤️ 4
    React 和 Angular 和 AngularJS 我都用过好多年, 而且 Angular 2 出来之前我就已经很熟 Rx 和 TS 了, 简单结论: 别学别用 Angular.

    Angular 扩展性可维护性其实都不如 React/Vue, 而且复杂得一批, 细节还特别坑, 很多互相矛盾的地方. 每个地方技术实现上看都可以, 拼起来就是个渣, 给人一种“没有产品经理”, 想起来啥就做啥的感觉.

    说 Angular 好的基本就是几种:
    1. 后端不懂前端, 觉得看着熟悉.
    2. 熟悉 React 和 Vue, 但不那么熟悉 Angular, 别人家的草更绿.
    3. 只熟悉 Angular, 所以互相没比较.
    4. 做的东西太简单, 用 Angular 还没撞墙.

    总得来说 Angular 给人的感觉就是不咋懂前端的问题:
    1. 鼓励 MVVM 把状态分散到组件, 不像 React 那样鼓励 Hoisting. 你必须玩命给同事洗脑要 Hoisting, 要用状态管理, 不然写着写着状态就分散到全世界, 到处都不同步.
    2. 更新也是个大坑, 用 push only 满地都是 markForCheck. 导致写库和写业务代码完全不一样, 导致 Angular 用户大部分都不会写库, 有种重新发明了手动挡…吧 JS 改造成 C++的感觉.
    3. 不用 push only 的时候还是 AngularJS 那一套, 靠 Zone 排队, 问题是即便这样很多地方还是要手动 runInZone, 这个问题根本无解, 特别容易造成隐性 bug, 跟 React/Vue 比一开始设计思路根本就是错的.
    4. 扩展性, 抽象性好嘛? 还不是被高阶组件, hooks, render callback 吊打. OO 在这方面只能说菜得抠脚, 而且<ng-container> <ng-template> <ng-content>不仅迷惑, 而且加起来也被 props.children 吊打.

    Angular 也不是一无是处, 偶尔有点闪光点:
    1. Reactive form, 和 UI 解耦的 form, React 和 Vue 明显也可以做, 但是不知道为啥大家都不用.
    2. Async pipe, 既然发明了 template 引擎, 就得好一点…
    3. AOT? AOT 也不能算闪光点, 因为前面的屎山堆太多, 编译起来太大了, 只能用这种高级操作挽回一点点. 而且跟 Svelte 比就是弟弟.
    Stevearzh
        56
    Stevearzh  
       2021-03-10 12:10:39 +08:00
    rxjs 怎么成网络请求模块了... 你要比也得和 redux 或者 vuex 比啊
    quan01994
        57
    quan01994  
       2021-03-10 13:35:37 +08:00
    rxjs 很好。
    TomatoYuyuko
        58
    TomatoYuyuko  
       2021-03-10 13:45:17 +08:00
    工具而已,不喜欢用,那就是不好用的工具
    mxT52CRuqR6o5
        59
    mxT52CRuqR6o5  
       2021-03-10 13:58:21 +08:00 via Android
    @namelosw
    +1,不是 spring 程序员完全没必要学
    Mrxx
        60
    Mrxx  
       2021-03-10 14:01:44 +08:00   ❤️ 1
    怀念那个 jQuery 的时代
    ccsulzf0627
        61
    ccsulzf0627  
       2021-03-10 14:07:20 +08:00
    @yuuko 换台好电脑吧,离谱,十几分钟都来了
    mxT52CRuqR6o5
        62
    mxT52CRuqR6o5  
       2021-03-10 14:07:32 +08:00
    https://www.zhihu.com/question/27053548
    根据知乎上几个高赞回答,spring 里依赖注入的原因一部分和 java 本身有关,一部分是方便测试
    而 js 本身没有 java 那部分的限制,有 vdom 时也已经就可以做单元测试了
    ccsulzf0627
        63
    ccsulzf0627  
       2021-03-10 14:09:09 +08:00
    @Mrxx 我现在就在写 jQuery
    Mrxx
        64
    Mrxx  
       2021-03-10 14:13:42 +08:00
    以前做个项目,咔咔咔,几个小时上线了
    现在做个项目
    npm install
    composer install
    ....
    几天过去了,环境还没搭好
    干!
    xcstream
        65
    xcstream  
       2021-03-10 14:36:09 +08:00
    开发效率高,快速做完了,老板布置新任务。
    开发门槛高,别人难以替代你。
    charlie21
        66
    charlie21  
       2021-03-10 15:19:14 +08:00
    框架复杂有复杂的好处,它可以劝退一批人,剩下的不会被 35 岁淘汰嘛 大家其乐融融
    FLUX 模式和 MVVM 模式不过是 2 种设计模式而已(写 GUI 还有很多种设计模式,理解设计模式才能理解模块划分),当然都可以用来写 GUI 啊,FP 和 OO 又是天生的井水不犯河水,我只看到了前端圈的繁荣
    前端圈自己就一副很看不起前端圈的样子我也是没想到的
    bojue
        67
    bojue  
       2021-03-10 16:15:37 +08:00 via iPhone
    先入为主的开发习惯,导致你说的几个点都说不到点上,框架不是为了简单,而是在开发效率,维护和性能做了一个平衡,当年开发 vue 的还喷 ng 的 ts 需要额外投入的,差不多的团队,团队开发中入门级的前端在框架的选择上没有任何话语权,别给自己加戏包括我自己
    Austaras
        68
    Austaras  
       2021-03-10 16:32:35 +08:00
    @namelosw
    1. state hoisting 本来就是不好的
    2. ivy 和 svelte 的 aot 本来就差不多
    少半瓶水晃荡了
    namelosw
        69
    namelosw  
       2021-03-10 16:56:57 +08:00
    @Austaras
    1. 没 hoisting 更不好
    2. Svelte 的 AoT 是解决前端问题, Angular AoT 是为了解决自己凭空创造的问题
    半瓶水彼此彼此
    bojue
        70
    bojue  
       2021-03-10 17:05:31 +08:00
    @namelosw 学了这么久这么多还把吊打挂在嘴上,tob 表单类项目为什么不能用 angular,你说的坑具体什么坑,一千多个组件的项目任何框架开发起来都多少出点问题,就看谁先挂
    nzbin
        71
    nzbin  
       2021-03-10 17:12:29 +08:00   ❤️ 1
    @namelosw 你这确实有点强答了。。。感觉谷歌的工程师都没你牛🙄
    Austaras
        72
    Austaras  
       2021-03-10 17:14:59 +08:00
    @namelosw 只有有需要 hoist 的才 hoist,没需要的不共享给别人才是对的,你只不过是把别人偶然犯的错误当作框架的缺陷而已。至于什么“凭空创造”“”前端问题”之类的大词,一看就是纯装逼,在知乎之类的地方讲讲么拉倒了,不要以为能在 V2EX 忽悠到人
    hoyixi
        73
    hoyixi  
       2021-03-10 17:16:15 +08:00
    其实是风格问题。 以前说过,G 家的工程师脑回路总感觉和大多人是不一样的, 以前用 G 家产品的 API,从 API 设计,以及通过 API 猜测 G 家产品背后的数据库之类字段设计,都感觉脑回路比较奇特~

    这也没什么,毕竟每个人每个公司都有自己的风格。

    但是,但是,你如果把东西给别人用,那就是另一码事了,虽然开发者这个群体比较特殊,但是也算 G 家的“用户”,总得考虑下用户体验和感受吧~

    这点 Apple 就好多了,API, 工具,文档,都舒服多了。
    namelosw
        74
    namelosw  
       2021-03-10 17:16:43 +08:00
    @bojue
    主要的坑就是满屏幕 MarkForCheck
    如果不 MarkForCheck 一方面性能不太好, 另外一方面老得提防 runInZone. 即使自己记得住, 同事肯定也老忘.
    然后没有 React props.children 和 Vue 的<slot/>好用
    namelosw
        75
    namelosw  
       2021-03-10 17:19:04 +08:00
    @Austaras 一个 hoist 的 codebase 下发比不 hoist 的 codebase 上提容易得多. 后者就是没救.
    namelosw
        76
    namelosw  
       2021-03-10 17:20:49 +08:00
    @nzbin 这不是技术牛不牛的东西, 是设计问题, Google Cemetery 了解一下?
    namelosw
        77
    namelosw  
       2021-03-10 17:27:02 +08:00
    @Austaras > 至于什么“凭空创造”“”前端问题”之类的大词,一看就是纯装逼
    所以人家几十 K 就挺好的框架为啥要几百 K 解决? 不是凭空创造是什么?

    我 Ng 和 React 的项目都是同期开发的几十万行项目, 我分享的都是实际经验.

    你啥 insight 也不提供直接就说我装逼.

    反正谁踩坑谁难受.
    bojue
        78
    bojue  
       2021-03-10 17:36:42 +08:00
    @namelosw 不错不错,这起码是石锤,如果是这样的话应该是对性能有要求,可以集成 React 开发一些业务页面
    Austaras
        79
    Austaras  
       2021-03-10 18:32:53 +08:00
    @namelosw  醒醒,开了 ivy 之后也能做到 100k 以内,何况你这个问题不如去问问 react 为什么体积要膨胀到 100k 以上。你在这里空谈几十万行 code 一点意义都没有,GUI 是最容易堆砌互相之间没有关联的垃圾代码的地方
    Austaras
        80
    Austaras  
       2021-03-10 18:34:19 +08:00
    @namelosw 你不要把你不会上提说成框架的问题,ng 里拆到单独的 service 非常容易,如果只要在组件里分享可以直接写在组件的 providers 里,而且性能要比对应的 react context 好很多
    Austaras
        81
    Austaras  
       2021-03-10 18:35:11 +08:00
    @namelosw 我不提供 insight,起码没有拿技术名词(甚至都不是)来误导人,产出起码是正的
    Austaras
        82
    Austaras  
       2021-03-10 18:44:35 +08:00
    @namelosw 剩下几条也反驳一下
    2. 没人逼你用 push only,实际上只有极为特殊的情况或者像 antd 那样的组件库才需要用到,你给自己找麻烦非要怪 angular ?
    3. 结合前一点,估计又是你瞎配置才需要 zone.run
    4. 模版的表达能力的确有所欠缺,但是 angular 的模版已经是表达力最强的,而且你说的 slot 这套不是在 webcomponent 和 vue 里也有吗?不要把自己学不会的东西叫迷惑。而且这和 OO 一点关系都没有,我怀疑你都没有自己写过指令
    wszgrcy
        83
    wszgrcy  
       2021-03-10 18:46:48 +08:00 via Android
    ng 大本营?
    nzbin
        84
    nzbin  
       2021-03-10 18:55:22 +08:00
    @bojue 别被误导,我们几十万代码的项目也没这些事,看看 angular 官网和 react 官网的性能比较一目了然
    namelosw
        85
    namelosw  
       2021-03-10 19:05:30 +08:00
    @Austaras
    > 开了 ivy 之后也能做到 100k 以内
    这不是消灭凭空创造的问题是啥?

    > ng 里拆到单独的 service 非常容易
    人家 React 和 Vue 上提的都是 reactive, ng service 就是个普通对象, 写个 getter 当 computed 都 loop 的飞起, 最后还得额外找个状态管理方案, 要不满屏幕 Rx 花式 map.

    > 没人逼你用 push only
    问题就在这, 为啥库和正常代码不能一样? 写代码学一套, 写库又学一套, 厉害厉害.

    > 我怀疑你都没有自己写过指令
    我连 ng1 的 parser 都写过好几年了, 我不写 directive 不写组件库我能知道 push only?

    > slot 这套不是在 webcomponent 和 vue 里也有吗?
    就是 webcomponent 和 vue 阿, 而且 React 没有. 你不是没用过 React 吧.
    Lemeng
        86
    Lemeng  
       2021-03-10 19:06:44 +08:00
    上的少,看来 b 站真是什么都有啊
    yuuko
        87
    yuuko  
       2021-03-10 19:45:14 +08:00
    @ccsulzf0627 我不知道你说的离谱是什么意思?还是说你们项目小?我们项目开启 es5 支持+es6 module+ssr,编译内存占用直接超出 nodejs 默认可使用内存大小,必须手动设置 max_old_space_size 可用最大内存,整套编译下来 20 多分钟,编译过程整个电脑都卡了 (Macbook pro 13 16G 内存 17 版),整个项目经历 angular5 一路升级到 9

    你可以看看官方 issue 有多少人有这个问题 https://github.com/angular/angular-cli/issues/13734
    Solael
        88
    Solael  
       2021-03-10 20:07:56 +08:00
    @namelosw zone 和状态管理确实是坑。rxjs 的状态管理虽然简洁但是不够用,所以很多项目做到中间要上 redux
    Austaras
        89
    Austaras  
       2021-03-10 20:08:00 +08:00
    @namelosw
    > 这不是消灭凭空创造的问题是啥
    复杂的 svelte 程序也会带上大几十 kb 的 runtime,而且照你这么说带 runtime 的框架都是凭空创造问题?

    > 人家 React 和 Vue 上提的都是 reactive,
    噗,react 里哪有 reactive 的东西?你梦里

    > 要不满屏幕 Rx 花式 map
    不然呢,这不就是学不会 rx 喷 angular 么

    > 写个 getter 当 computed 都 loop 的飞起
    这种不是你自己的问题,这都能 loop 你写 hook 还不是原地爆炸?而且你可以用 ngrx 啊

    > 问题就在这, 为啥库和正常代码不能一样? 写代码学一套, 写库又学一套, 厉害厉害.
    因为团队哲学不一样。react 团队的确是不鼓励要提供高级 api 解决复杂的问题,angular 团队不一样啊,这也没有哪家一定是对的

    > 我连 ng1 的 parser
    这和 ng2 有一毛钱关系吗?你报菜名都只会报 angularjs 的?顺带你前面说的为什么没有 reactive form,那是因为 ng 先抽象了一套 NGValueAccessor,别的框架你想想要怎么办

    > 你不是没用过 React 吧.
    那我一开始就说了,这是模版和 jsx 的区别,两者互有优劣,你单举 jsx 的优势讲有什么意思,我还想说 angular 里随便搞搞指令就可以写复杂的表单验证暴打 jsx 呢,有意思吗?而且事实证明业界选择模版的框架并不少,何况 angular 里你非要搞 HOC 也是做得到的
    Austaras
        90
    Austaras  
       2021-03-10 20:08:47 +08:00
    @yuuko 对自己好一点,搞个 CI CD 管线吧
    Austaras
        91
    Austaras  
       2021-03-10 20:18:42 +08:00
    算了没什么好争的,现存的流行前端技术都是互有优劣的,强行只看好处和只看坏处都不可取
    nzbin
        92
    nzbin  
       2021-03-10 20:29:13 +08:00
    @Austaras 有些人对 Angular 有种天生的偏见,怎么说都没用的
    yuuko
        93
    yuuko  
       2021-03-10 20:41:58 +08:00 via Android
    @Austaras 我们已经 ci 自动打包了,但是发个版要 20 分钟也是难受,开始向 react 迁移了
    yuuko
        94
    yuuko  
       2021-03-10 20:52:37 +08:00
    我再来吐槽下,现在 angular11 都出来了,按理说 angular9 的生态应该很稳定了,于是我们决定从 8 升到 9,结果升级完发现 jit 热更新是炸的,只有 aot 模式的热更新能用,我真的是满头问号,按我们项目的规模,aot 模式热更新最少需要等待十几秒。。。

    相关 issue https://github.com/angular/angular/issues/35265
    KuroNekoFan
        95
    KuroNekoFan  
       2021-03-10 20:58:54 +08:00
    @namelosw #55 虽然现在很多人写 react 都一堆模板代码,但是现在比较推崇的实践难道不是不必 hoist 的就不 hoist ?
    WillBC
        96
    WillBC  
       2021-03-10 21:07:18 +08:00
    开炮开炮!
    Austaras
        97
    Austaras  
       2021-03-10 22:08:36 +08:00
    @yuuko 我是觉得 20 分钟发版没什么啦...不是正好摸鱼么, 不过你要是觉得时间长可以试着把 build-optimizer 关掉, 能快很多
    Austaras
        98
    Austaras  
       2021-03-10 22:09:26 +08:00
    热更新倒是真的很垃圾, 不过这个东西本来就很难做, react 那边也一堆问题, 我最近也在研究这个
    namelosw
        99
    namelosw  
       2021-03-10 22:31:34 +08:00
    @KuroNekoFan 对, 不过这个是对 hoisting 党说的. 再往前是从来不 hoisting 党.

    考虑历史进程应该是不 hoisting < hoisting < 合理 hoisting.

    单向的问题容易是 hoisting 太多, MVVM 的问题是容易 hoisting 太少. hoisting 太多的副作用比 hoisting 太少小一点.
    pigspy
        100
    pigspy  
       2021-03-10 23:01:12 +08:00
    react 和 angular 都挺好的,vue 才是学不下去
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3970 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 05:26 · PVG 13:26 · LAX 21:26 · JFK 00:26
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.