Angular 2 is a complete rewrite of AngularJS. It is component-based and focuses on better performance. An Angular 2 app is a tree of components. Components are declared using the @Component decorator and the app's routing is configured with the @RouteConfig decorator. The project structure separates the app into modules, components, services and tests. Data binding in Angular 2 allows for unidirectional and two-way binding between the template and component class.