1. TypeScript语法与ES6新特性

写惯了jQ的话突然从ES5跳到ES6,又是个变形的ES6(TypeScript),学习成本确实不低。不过笔者也是从ng1直接上手ng2,对与很多新特性的积累基本是抄着ng2官网的快速起步捡起来的。所以给的建议是,有ES6甚至TS基础肯定完美,但是在使用ng2过程中现学这些也完全没有问题。

2. Webpack前端模块化

ng2的默认模块化工具是SystemJS,也是个很酷炫的模块化工具。但它也只是个模块化工具,只管帮你模块化代码不管打包压缩,这会导致项目运行过程中会不停的去请求module啊component啊service啊甚至component的模板html啊css啊全都得请求,还是未压缩的。所以SystemJS下的ng2拿来娱乐玩玩还不错,真要做产品还是得换Webpack上场(相比SystemJS的配置只需要一个.config.js而且是动态加载,Webpack则需要手动编译打包然后运行,其打包配置也是一门学问)。

Webpack给我的感觉就是,理解起来有一定难度,但好在一劳永逸,一旦完成了成熟的配置,后续所有项目都通用。

3. 前后端分离的SPA架构

这个不仅是ng2了,Web趋势如此,服务器只做WebApi,客户端算是个独立的应用。

前后端分离要面对一些问题,比如跨域,比如网络请求的认证,客户端登录状态的保持等等。

带来的好处之一是客户端非常容易扩展,部署一个WebApi服务一百个客户端网站理论上完全没问题,还有就是客户端迁移到跨平台App上或是原生App的Webview中会相对简单很多,可以直接把前端网站想象成真正的Android App来开发。

4. ng1的一些架构思维

ng2相比ng1是强化了它好的地方,并修改了它不好的地方,抛开项目迁移的门槛与工作量,ng2一定是远强大与ng1的。其部分核心理念还是继承下来的,比如其组件、服务、管道的概念。其中组件是ng1中标签型指令的分离强化版,服务依然是那个通过依赖注入到具体组件的强大单例工具,管道则是ng1过滤器的演变形态,去掉了几个性能杀手级别的自带过滤器,还有更强大的动画系统与路由体系等等。

5.npm基础

ng2在npm上维护,绝对是个好消息,至少保证了其生命力,不再是在页面上引用个*.min.js完事了(虽然强行这么做也还是可以),不过这又要求开发者有一些npm使用的基础了,简单的包管理指令就足够。当然如果想要进一步自己开发一个ng2模块并发布到npm,还是需要一些功底才能做到了,这涉及到npm的一些发布流程以及js模块化的包管理概念。

总结是要想使用ng2来完成一个产品,还真得学习不少新技术,门槛不低,但要是连这么多东西都能熟练运用,不是一件相当有征服感与成就感的事么!

(二) 从Angular1到Angular2需要的预备知识的更多相关文章

  1. Angular1还是Angular2

    Angular1还是Angular2 学完angular1,尝试去看了下angular2,虽然号称更强更快,可是这基于ES6和TypeScript的全新框架让人完全招架不住,而且我只是需要angula ...

  2. word2vec 中的数学原理详解(二)预备知识

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/peghoty/article/details/37969635 https://blog.csdn. ...

  3. word2vec 中的数学原理具体解释(二)预备知识

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/peghoty/article/details/37969635   word2vec 是 Googl ...

  4. LeetCode刷题预备知识(二)

    Python四大数据结构的属性及方法 在LeetCode刷题预备知识一中我们掌握了常见的内置函数,和四大数据结构的基本概念: 但只掌握这些还远远不够,我们还需了解四大数据结构的属性及方法才能更高效快速 ...

  5. LayIM.AspNetCore Middleware 开发日记(二)预备知识介绍

    前言 开发一个AspNetCore的中间件需要理解RequestDelegate.另外,还需要理解.NET Core中的依赖注入.还有一个就是内嵌资源的访问.例如:EmbeddedFileProvid ...

  6. 从0开发3D引擎(二):准备预备知识

    大家好,本文介绍了开发3D引擎需要的预备知识,给出了相关的资源. 上一篇博文 从0开发3D引擎(一):开篇 了解Web 3D Web 3D的历史 目前Web 3D是基于WebGL这个Web端3D AP ...

  7. 受限玻尔兹曼机(RBM)学习笔记(一)预备知识

    去年 6 月份写的博文<Yusuke Sugomori 的 C 语言 Deep Learning 程序解读>是囫囵吞枣地读完一个关于 DBN 算法的开源代码后的笔记,当时对其中涉及的算法原 ...

  8. LDA-线性判别分析(一)预备知识

    本来是要调研 Latent Dirichlet Allocation 的那个 LDA 的, 没想到查到很多关于 Linear Discriminant Analysis 这个 LDA 的资料.初步看了 ...

  9. IP地址和子网划分学习笔记之《预备知识:进制计数》

    一.序:IP地址和子网划分学习笔记开篇 只要记住你的名字,不管你在世界的哪个地方,我一定会去见你.——新海诚 电影<你的名字> 在我们的日常生活中,每个人的名字对应一个唯一的身(敏)份(感 ...

随机推荐

  1. php中DateTime的format格式以及 TtoDatetime函数

    Definition and Usage The date() function formats a local time/date. Syntaxdate(format,timestamp)Para ...

  2. Android应用运行过程(转)

    源:Android应用运行过程 首先,ActivityThread从main()函数开始执行,调用prepareMainLooper()为UI线程创建一个消息队列(MessageQueue). 然后创 ...

  3. NewTonJson.Net的使用

    1.引用“Newtonsoft.Json” 4.0 版本 2.基础类 using System; using System.Collections.Generic; using System.Linq ...

  4. ZOJ 1108 & HDU 1160 - FatMouse's Speed

    题目大意:给你n只老鼠的体重w和速度s,让你找出最长的子序列使得w[i] < w[j] 且 s[i] > s[j] (i < j).求最长序列的长度并输出该序列. LIS(Longe ...

  5. java基础面试

    1. String类为什么是final的. 安全性:如果字符串是可变的,那么会引起很严重的安全问题.譬如,数据库的用户名.密码都是以字符串的形式传入来获得数据库的连接,或者在socket编程中,主机名 ...

  6. iOS 框架 Nimbus

    Nimbus好像是用来处理 视图控制器的 解耦 参考: http://www.oschina.net/p/nimbuskit

  7. CMake Tutorial

    1.最简实例 使用cmake的最简实例是由一个源程序文件生成一个可执行文件.例如由下述C++源程序文件生成可执行文件tutorial. main.cpp #include<iostream> ...

  8. 那就用pthon来写个跳板机吧

    1.需求 程序一: 1.后台管理 - 堡垒机上创建用户和密码(堡垒机root封装的类,UserProfile表) - .bashrc /usr/bin/python3 /data/bastion.py ...

  9. 用蓝牙芯片CC2541/CC2540实现一个智能恒温箱

    最近突然想自己做一个智能小冰箱玩一玩,于是决定动手试一试. 成品效果图 原材料 半导体制冷片一只 散热风扇 12V电源一台 智能恒温箱电路板 控制板的PCB图 原理图 供电部分原理图 制冷片控制部分原 ...

  10. jQuery中animate动画第二次点击事件没反应

    jQuery中animate动画第二次点击事件没反应 用animate做点击翻页动画时发现第二次点击事件动画没反应,而第一次点击有动画效果,代码如下: 复制代码 代码如下: $(".page ...