Angular 简介
什么是 Angular.js?
Angular.js 是 Google 开发的一个前端框架,主要用于构建动态的单页应用(SPA),采用 MVC 设计模式,提供数据绑定和依赖注入功能。
info
Angular.js 适用于构建复杂的 Web 应用,能够提升开发效率和可维护性。
Angular.js 主要应用场景
领域 | 说明 | 主要库/框架 |
---|---|---|
单页应用(SPA) | 构建前端动态页面 ,优化用户体验 | Angular Router |
组件化开发 | 复用 UI 组件,提高开发效率 | Angular Material, NG-Zorro |
服务器端渲染(SSR) | 提升 SEO 和首屏加载速度 | Angular Universal |
移动端开发 | 构建跨平台移动应用 | Ionic |
Angular.js 代码示例
- HTML
- TypeScript (Angular 2+)
<!DOCTYPE html>
<html ng-app="myApp">
<head>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.8.2/angular.min.js"></script>
</head>
<body>
<div ng-controller="myController">
<h1>{{ message }}</h1>
</div>
<script>
var app = angular.module("myApp", []);
app.controller("myController", function ($scope) {
$scope.message = "Hello, Angular.js!";
});
</script>
</body>
</html>
import { Component } from "@angular/core";
@Component({
selector: "app-root",
template: "<h1>{{ message }}</h1>",
})
export class AppComponent {
message: string = "Hello, Angular!";
}
Angular 组件示例
import { Component } from "@angular/core";
@Component({
selector: "app-button",
template: '<button (click)="handleClick()">{{ label }}</button>',
})
export class ButtonComponent {
label: string = "Click me";
handleClick() {
alert("Button clicked!");
}
}
Angular 路由示例
import { NgModule } from "@angular/core";
import { RouterModule, Routes } from "@angular/router";
import { HomeComponent } from "./home.component";
import { AboutComponent } from "./about.component";
const routes: Routes = [
{ path: "", component: HomeComponent },
{ path: "about", component: AboutComponent },
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule],
})
export class AppRoutingModule {}
状态管理示例(NgRx)
import { createReducer, on, createAction, createSelector } from "@ngrx/store";
export const increment = createAction("[Counter] Increment");
export interface CounterState {
count: number;
}
export const initialState: CounterState = {
count: 0,
};
export const counterReducer = createReducer(
initialState,
on(increment, (state) => ({ count: state.count + 1 }))
);
服务器端渲染(SSR)示例(Angular Universal)
使用 Angular Universal 进行 SSR
import { NgModule } from "@angular/core";
import { ServerModule } from "@angular/platform-server";
import { AppModule } from "./app.module";
import { AppComponent } from "./app.component";
@NgModule({
imports: [AppModule, ServerModule],
bootstrap: [AppComponent],
})
export class AppServerModule {}
结论
Angular.js 是一个功能强大的前端框架,适用于单页应用、企业级应用和服务器端渲染等多个场景。其组件化设计和丰富的生态系统使其成为开发者的首选。