Skip to content

Vue 3 @angular/core, @angular/common/http, @angular/router API

Vue 3 核心 API —— 响应式原语、组件定义和组合式函数约定。

3 classes · 13 methods

Reactivity

5 methods

响应式 API:ref、reactive、computed、watch 和 watchEffect,用于管理响应式状态。

@Component(metadata)

创建一个包装原始值或对象的响应式引用;通过 .value 访问值。

Parameters

NameTypeDescription
metadataComponentObject with selector, template/templateUrl, styleUrls/styles.

Returns

ComponentDecorator

Example

angular
@Component({
  selector: 'app-hello',
  template: '<h1>{{name}}</h1>',
})
export class HelloComponent {
  name = 'Angular';
}
@Input() property

返回对象的响应式代理;嵌套属性也是响应式的。不要替换整个对象。

Returns

InputDecorator

Example

angular
export class ChildComponent {
  @Input() title = '';
}
@Output() event = new EventEmitter<T>()

创建只读的计算属性引用,其值从响应式源派生并缓存,直到依赖项变化。

Returns

OutputDecorator

Example

angular
export class ChildComponent {
  @Output() clicked = new EventEmitter<string>();
  onClick() { this.clicked.emit('hi'); }
}
ngOnInit()

监视一个或多个响应式源,在它们变化时运行回调,接收新值和旧值。

Returns

void

Example

angular
export class AppComponent implements OnInit {
  ngOnInit() {
    console.log('initialized');
  }
}
ngOnDestroy()

立即运行副作用,并在其响应式依赖变化时重新运行。自动跟踪依赖。

Returns

void

Example

angular
export class AppComponent implements OnDestroy {
  ngOnDestroy() {
    this.subscription.unsubscribe();
  }
}

Component

4 methods

组件定义 API:defineComponent、defineProps、defineEmits 和生命周期钩子。

http.get<T>(url, options?)

定义组件,为选项式 API 或预类型化组件提供完整类型推断。

Parameters

NameTypeDescription
urlstringEndpoint URL.
optionsobjectOptional headers, params, responseType, observe.

Returns

Observable<T>

Example

angular
http.get<User>('/api/users/1')
  .subscribe(user => console.log(user));
http.post<T>(url, body, options?)

<script setup> 中的编译时宏,声明组件属性并提供完整类型推断。

Parameters

NameTypeDescription
urlstringEndpoint URL.
bodyanyRequest body to send.

Returns

Observable<T>

Example

angular
http.post<User>('/api/users', { name: 'Sam' })
  .subscribe(u => console.log('created', u));
http.put<T>(url, body, options?)

声明组件可触发事件的编译时宏。

Parameters

NameTypeDescription
urlstringEndpoint URL.
bodyanyReplacement body.

Returns

Observable<T>

Example

angular
http.put('/api/users/1', { name: 'Sam2' })
  .subscribe();
http.delete<T>(url, options?)

在组件挂载到 DOM 后调用的生命周期钩子。

Parameters

NameTypeDescription
urlstringEndpoint URL.

Returns

Observable<T>

Example

angular
http.delete('/api/users/1')
  .subscribe(() => console.log('deleted'));

Composables

4 methods

将可复用的响应式逻辑封装为以 'use' 为前缀的函数的约定。

router.navigate(commands, extras?)

用户定义的组合式函数,包装响应式状态并暴露它。按约定名称以 'use' 开头。

Parameters

NameTypeDescription
commandsany[]URL segments, e.g. ['/users', 1].
extrasNavigationExtrasOptional queryParams, fragment, state.

Returns

Promise<boolean>

Example

angular
router.navigate(['/users', 1], {
  queryParams: { tab: 'profile' }
});
router.navigateByUrl(url)

返回组件的插槽对象,用于在 setup 中编程式访问插槽。

Parameters

NameTypeDescription
urlstringAbsolute URL path.

Returns

Promise<boolean>

Example

angular
router.navigateByUrl('/users/1/edit');
route.snapshot.paramMap.get(key)

返回组件的透传属性(非 prop、非 emit),用于编程式访问。

Parameters

NameTypeDescription
keystringParameter name.

Returns

string | null

Example

angular
const id = route.snapshot.paramMap.get('id');
console.log(id);
router.events

An observable of router events (NavigationStart, NavigationEnd, etc.).

Returns

Observable<Event>

Example

angular
router.events
  .pipe(filter(e => e instanceof NavigationEnd))
  .subscribe(e => console.log((e as NavigationEnd).url));