Reactivity
5 methods响应式 API:ref、reactive、computed、watch 和 watchEffect,用于管理响应式状态。
@Component(metadata)创建一个包装原始值或对象的响应式引用;通过 .value 访问值。
Parameters
| Name | Type | Description |
|---|---|---|
| metadata | Component | Object with selector, template/templateUrl, styleUrls/styles. |
Returns
ComponentDecorator
Example
@Component({
selector: 'app-hello',
template: '<h1>{{name}}</h1>',
})
export class HelloComponent {
name = 'Angular';
}@Input() property返回对象的响应式代理;嵌套属性也是响应式的。不要替换整个对象。
Returns
InputDecorator
Example
export class ChildComponent {
@Input() title = '';
}@Output() event = new EventEmitter<T>()创建只读的计算属性引用,其值从响应式源派生并缓存,直到依赖项变化。
Returns
OutputDecorator
Example
export class ChildComponent {
@Output() clicked = new EventEmitter<string>();
onClick() { this.clicked.emit('hi'); }
}ngOnInit()监视一个或多个响应式源,在它们变化时运行回调,接收新值和旧值。
Returns
void
Example
export class AppComponent implements OnInit {
ngOnInit() {
console.log('initialized');
}
}ngOnDestroy()立即运行副作用,并在其响应式依赖变化 时重新运行。自动跟踪依赖。
Returns
void
Example
export class AppComponent implements OnDestroy {
ngOnDestroy() {
this.subscription.unsubscribe();
}
}Component
4 methods组件定义 API:defineComponent、defineProps、defineEmits 和生命周期钩子。
http.get<T>(url, options?)定义组件,为选项式 API 或预类型化组件提供完整类型推断。
Parameters
| Name | Type | Description |
|---|---|---|
| url | string | Endpoint URL. |
| options | object | Optional headers, params, responseType, observe. |
Returns
Observable<T>
Example
http.get<User>('/api/users/1')
.subscribe(user => console.log(user));http.post<T>(url, body, options?)<script setup> 中的编译时宏,声明组件属性并提供完整类型推断。
Parameters
| Name | Type | Description |
|---|---|---|
| url | string | Endpoint URL. |
| body | any | Request body to send. |
Returns
Observable<T>
Example
http.post<User>('/api/users', { name: 'Sam' })
.subscribe(u => console.log('created', u));http.put<T>(url, body, options?)声明组件可触发事件的编译时宏。
Parameters
| Name | Type | Description |
|---|---|---|
| url | string | Endpoint URL. |
| body | any | Replacement body. |
Returns
Observable<T>
Example
http.put('/api/users/1', { name: 'Sam2' })
.subscribe();http.delete<T>(url, options?)在组件挂载到 DOM 后调用的生命周期钩子。
Parameters
| Name | Type | Description |
|---|---|---|
| url | string | Endpoint URL. |
Returns
Observable<T>
Example
http.delete('/api/users/1')
.subscribe(() => console.log('deleted'));Composables
4 methods将可复用的响应式逻辑封装为以 'use' 为前缀的函数的约定。
router.navigate(commands, extras?)用户定义的组合式函数,包装响应式状态并暴露它。按约定名称以 'use' 开头。
Parameters
| Name | Type | Description |
|---|---|---|
| commands | any[] | URL segments, e.g. ['/users', 1]. |
| extras | NavigationExtras | Optional queryParams, fragment, state. |
Returns
Promise<boolean>
Example
router.navigate(['/users', 1], {
queryParams: { tab: 'profile' }
});router.navigateByUrl(url)返回组件的插槽对象,用于在 setup 中编程式访问插槽。
Parameters
| Name | Type | Description |
|---|---|---|
| url | string | Absolute URL path. |
Returns
Promise<boolean>
Example
router.navigateByUrl('/users/1/edit');route.snapshot.paramMap.get(key)返回组件的透传属性(非 prop、非 emit),用于编程式访问。
Parameters
| Name | Type | Description |
|---|---|---|
| key | string | Parameter name. |
Returns
string | null
Example
const id = route.snapshot.paramMap.get('id');
console.log(id);router.eventsAn observable of router events (NavigationStart, NavigationEnd, etc.).
Returns
Observable<Event>
Example
router.events
.pipe(filter(e => e instanceof NavigationEnd))
.subscribe(e => console.log((e as NavigationEnd).url));