核心功能
把应用拆成带 @Component 装饰器的 TypeScript 类,用 signal 管理状态、用依赖注入共享逻辑,并由 Angular CLI 统一负责创建项目、开发服务器与构建。适合结构约定要求高、需要多人长期协作维护的中大型 Web 应用。
功能亮点
组件是带装饰器的类
@Component 里写 selector 和 template,类体里写行为,结构位置固定、易于团队统一
信号式响应
signal('Morgan') 创建状态,firstName() 读取、firstName.set(...) 更新,框架追踪读取点
派生值自动同步
computed(() => firstName().toUpperCase()) 只读,上游信号一变它的值随之更新
服务注入替代层层传参
共享逻辑封装成服务类,组件里 private calculator = inject(Calculator) 即可取用
CLI 兜住整条链路
ng new 交互式生成项目并初始化 git,npm start 起监听模式的开发服务器
适用场景
• 多人协作的中大型 Web 应用,靠框架约定统一目录结构与组件写法
• 以 TypeScript 为主的团队,希望模板、状态、服务都有静态类型保障
• 需要把共享逻辑抽成服务、在多个组件间通过依赖注入复用的业务系统
安装配置
bash
前置条件:Node.js v20.19.0 或更新版本。 第一步,全局安装 Angular CLI —— npm: npm install -g @angular/cli 第二步,创建项目(按提示选择配置项): ng new <project-name> 第三步,进入目录并启动本地开发服务器: cd my-first-angular-app npm start 启动成功后访问终端提示的地址,默认为 http://localhost:4200/
使用方法
typescript
// user-profile.ts —— 定义并组合组件
import {ProfilePhoto} from 'profile-photo.ts';
@Component({
selector: 'user-profile',
imports: [ProfilePhoto],
template: `
<h1>User profile</h1>
<profile-photo />
<p>This is the user profile page</p>
`,
})
export class UserProfile {
// Component behavior is defined in here
}
// 用 signal / computed 管理状态
import {signal, computed} from '@angular/core';
@Component({
/* ... */
})
export class UserProfile {
isTrial = signal(false);
isTrialExpired = signal(false);
showTrialDuration = computed(() => this.isTrial() && !this.isTrialExpired());
activateTrial() {
this.isTrial.set(true);
}
}关键指标
尚未核验对标产品,此处只列本工具自身指标,不做对比结论。
指标Angular
价格免费
开源是
上手难度进阶
相关工具
同类工具
优点
- 组件、服务、模板的写法由框架规定,不必自行拼装路由、构建等基础选型
- signal 与 computed 提供细粒度的状态追踪,派生值随上游信号自动重算且只读
- 依赖注入把共享逻辑收敛成单一来源,组件里一行 inject() 取用,测试时也便于替换实现
- Angular CLI 覆盖创建、开发服务器、构建全流程,ng new 还会顺带初始化 git 仓库
缺点
- 官方文档假定使用者已熟悉 TypeScript、JavaScript 类与 TypeScript 装饰器,前端新手起步门槛偏高
- 概念数量较多,组件、信号、模板、依赖注入要一并掌握才能写出符合框架习惯的代码
- 要求 Node.js v20.19.0 及以上,旧构建环境需要先升级运行时