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

angular 学习学哪个版本的好

  •  
  •   woahishui · 2019-11-15 18:34:29 +08:00 via Android · 5032 次点击
    这是一个创建于 1585 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近看了前端好多都要求 angular,这个目前大家都用哪些版本呢
    19 条回复    2019-12-17 19:52:56 +08:00
    ddup
        1
    ddup  
       2019-11-15 18:44:19 +08:00 via Android
    2.x 起都大同小异,可以从 angular 9 最新版本用起,ivy 编译器加持后,应用压缩后体积有恐怖减少,Hello word 是 7kb,大点的项目尚且不知道效果如何,估计效果也会比较惊喜。面试的时候就可以介绍介绍。
    sun522198558
        2
    sun522198558  
       2019-11-15 18:47:45 +08:00
    学 react 把,目测肯定比 angular 多
    ddup
        3
    ddup  
       2019-11-15 18:55:18 +08:00 via Android
    ToDo App 是 12.2kb ,angular 一下子成为体积几乎最小的单页面框架了。

    还不清除什么原理,可能跟 angular 框架全部使用 typescript 编写有很大关系,基于强类型的语言可以做静态分析,这样就可以,在编译的时候就确定代码的依赖关系(不过 ts 也可以弱类型,这部只能用传统方法)。

    在 2018 ng-conf 上 Angular 团队给出了一个 ivy 的 todo 应用的 demo :ivy-todo-list,这个应用的 bundle 大小是 12.2kb ,这个 todo app 的 demo 就在 github angular 的仓库中,地址: https://github.com/angular/angular/tree/master/packages/core/test/bundling/todo

    https://zhuanlan.zhihu.com/p/51291587
    hantsy
        4
    hantsy  
       2019-11-15 19:29:45 +08:00
    react 太 JS 了,Angular 比较 OOP,自己根据需要选择。

    React 虽然现在也内置支持 Typescript,但 JS 概念根深蒂固,如果对 High order functions 不敏感的话,写出来的 React 也是半吊子。

    Angular 对于熟悉 Java8,Spring 等有 OOP 的开发经验的人员,可以说是粘手就来,学习成本非常低。对于传统 JS ( ES5 )过来的人,无 OOP 概念的,学习成本反而高。
    elone
        5
    elone  
       2019-11-15 21:44:58 +08:00
    从 react 转到 Angular 之后,写了好几个项目了。学习 angular 就直接学习官方最新版本就好了。
    elone
        6
    elone  
       2019-11-15 21:45:57 +08:00
    @ddup 目前稳定版是 8 吧?
    ochatokori
        7
    ochatokori  
       2019-11-15 21:55:34 +08:00 via Android
    当然学新不学旧,除非公司明确要求哪个版本你又很想去
    Austaras
        8
    Austaras  
       2019-11-15 22:13:09 +08:00
    @hantsy 是 TypeScript 内置支持 JSX,其他观点基本同意,react 尤其是 hook 需要一些思维转变
    learnshare
        9
    learnshare  
       2019-11-15 22:34:42 +08:00
    最新版
    然而 Angular 方向的工作机会不那么多,推荐 React 一起学
    ( Vue ?可以考虑等新版本)
    youngxhui
        10
    youngxhui  
       2019-11-15 22:37:50 +08:00
    @elone 是的,好像 9 快发布了
    hantsy
        11
    hantsy  
       2019-11-15 22:52:14 +08:00
    @Austaras 两个方面的东西。
    1. tsc, 或者 babel 能够 transpile JSX 语法
    2. React 在很长的一段时间,不支持 Type 检测,后来支持自家的 Flow,再后来终于放弃了 Flow,支持 Typescript。现在如果使用 Typescript 写 React,完全可以使用 TS 语法全部静态检测类型。众所周知,静态类型对 IDE 工具很友好,可以避免很多不必要的错误。
    CoderLife
        12
    CoderLife  
       2019-11-15 23:05:13 +08:00
    在 9 发布前, 提前把 angular20 学了
    zhuangzhuang1988
        13
    zhuangzhuang1988  
       2019-11-15 23:59:32 +08:00
    都一样
    起码 DI Module 要知道
    参考下 Kibana 的代码 github 上有 angular.js + react 模式.
    angular.js 做 module + di
    Austaras
        14
    Austaras  
       2019-11-16 01:02:20 +08:00
    @hantsy 胡说八道
    react 现在的源码还是 Flow,随便看看就知道的吧
    https://github.com/facebook/react/blob/master/packages/react-dom/src/client/ReactDOM.js
    react 的 TypeScript 支持并不在官方仓库里而在第三方
    https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/react
    Austaras
        15
    Austaras  
       2019-11-16 01:02:41 +08:00
    @zhuangzhuang1988 我觉得这是非常恶劣的做法
    susumail
        16
    susumail  
       2019-11-16 07:06:01 +08:00 via iPhone
    建议不学
    hantsy
        17
    hantsy  
       2019-11-16 10:15:11 +08:00
    @ddup ionic 团队的 Stencil 宣称可以做到更小,TodoApp 压缩到 2K。

    https://dev.to/ionic/why-we-use-web-components-2c1i

    没试过这东西,针对未来 WebComponets 开发的,语法上接近 Angular Component+React redener().
    A2rael
        18
    A2rael  
       2019-11-16 16:53:34 +08:00
    亲,这边介意学 1.x 版本的呢
    coloz
        19
    coloz  
       2019-12-17 19:52:56 +08:00
    1 之后都大同小异,学最新的 release 就好,9 据说 ivy 十分牛逼。相对其他框架来说,angular 可能是最完善的,但也是最难学的。
    另外,找工作学 vue,如果想做好项目,用 angular
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3648 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 153ms · UTC 04:57 · PVG 12:57 · LAX 21:57 · JFK 00:57
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.