浅谈Angular组件的交互方式

本篇文章和大家一起聊聊angular组件的交互方式。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。

浅谈Angular组件的交互方式

Angular 组件交互

组件交互: 组件通讯,让两个或多个组件之间共享信息。

使用场景: 当某个功能在多个组件中被使用到时,可以将该特定的功能封装在一个子组件中,在子组件中处理特定的任务或工作流。

交互方式

方式1:通过@Input和@Output装饰器进行交互。方式2:通过服务进行交互。

相关教程推荐:《angular教程》

把数据从父组件传到子组件

通过输入型绑定将数据从父组件传到子组件。
输入属性是一个带有@Input装饰器的可设置属性。
当它通过属性绑定的形式被绑定时,值会“流入”这个属性。

部分代码示例如下:

import { Component, Input } from '@angular/core';@Component({  selector: 'app-selector',  template: `    // 模板代码  `})export class TestComponent {  @Input() hero: Hero;  @Input('master') masterName: string;}

登录后复制

上述例子中包含两个输入型属性,第二个@Input为子组件的属性名masterName指定一个别名master。

在父组件中引用子组件,部分代码示例如下:

        

登录后复制

监听输入属性值的变化

(1) 使用setter方法

使用一个输入属性的setter()方法,已拦截父组件中值的变化,并采取行动。

部分代码示例如下:

export class TestComponent {@Input()set name(name: String) {// 逻辑处理}}

登录后复制

(2) 使用ngOnChanges()方法

使用OnChanges生命周期钩子接口的ngOnChanges()方法来监听输入属性值的变化并做出回应。
注: 当需要监视多个、交互式输入属性时,本方法比用属性的setter方法更合适。

在子组件中从@angular/core导入Input、OnChanges和SimpleChange

import { Component, Input, OnChanges, SimpleChange } from '@angular/core';@Component({  selector: 'app-version-child',  template: `  // 模板代码  `})export class ChildComponent implements OnChanges {  @Input() major: number;  @Input() minor: number;  ngOnChanges(changes: { [propKey: string]: SimpleChange }) {    for (let propName in changes) {      // propName为输入属性的名字      let changedProp = changes[propName]; // changedProp为SimpleChange对象      // 其它代码    }  }}

登录后复制

SimpleChange类源代码如下:

/** * Represents a basic change from a previous to a new value for a single * property on a directive instance. Passed as a value in a * {@link SimpleChanges} object to the `ngOnChanges` hook. * * @see `OnChanges` * * @publicApi */export declare class SimpleChange {    previousValue: any;    currentValue: any;    firstChange: boolean;    constructor(previousValue: any, currentValue: any, firstChange: boolean);    /**     * Check whether the new value is the first value assigned.     */    isFirstChange(): boolean;}

登录后复制

父组件监听子组件的事件

子组件暴露一个 EventEmitter 属性,当事件发生时,子组件利用该属性 emits(向上弹射)事件。父组件绑定到这个事件属性,并在事件发生时作出回应。
子组件的 EventEmitter 属性是一个输出属性,通常带有@Output装饰器。

—— Angular 组件之间的交互

父组件和子组件通过服务进行通讯

父组件和它的子组件共享同一个服务,利用该服务在组件家族内部实现双向通讯。

该服务实例的作用域被限制在父组件和其子组件内。这个组件子树之外的组件将无法访问该服务或者与它们通讯。

更多编程相关知识,请访问:编程视频!!

以上就是浅谈Angular组件的交互方式的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2716331.html

(0)
上一篇 2025年3月7日 21:53:50
下一篇 2025年3月3日 18:14:10

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 13个关于angular的前端面试题(总结)

    本篇文章给大家总结分享13个关于angular的前端面试题。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 1,ng-if 跟 ng-show/hide 的区别有哪些? 第一点区别是,ng-if 在后面表达式为 true …

    2025年3月7日
    200
  • Angular怎么刷新当前页面?方法介绍

    本篇文章给大家分享几种angular刷新当前页面的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 Angular刷新当前页面的几种方法 默认,当收到导航到当前URL的请求,Angular路由器会忽略。 Heroes …

    2025年3月7日
    200
  • 深入浅析Angular中Directive的用法

    本篇文章给大家详细介绍一下angular directive,了解它的用法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 Angular Directive 学习 学习目的:为了更好的了解 ng directive 的使…

    2025年3月7日
    200
  • 20个优秀的Angular开源项目,你了解几个呢?

    本篇文章给大家分享20个你值得了解的angular开源项目。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 相关教程推荐:《angular教程》 1.Angular-CLI – angular工具命令行 Git…

    2025年3月7日 编程技术
    200
  • 详解Angular中的Route路由

    本篇文章带大家一起了解angular中的路由(route)。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 Angular 路由(Route) 我们可以将路由器理解成控制整个应用状态的视图对象, 每个应用都有一个路由器; …

    2025年3月7日
    200
  • 详解Angular中的NgModule(模块)

    本篇文章带大家详细了解一下angular中的ngmodule(模块)。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 Angular 模块(NgModule) Angular 应用是模块化的, 它拥有自己的模块化系统, 称…

    2025年3月7日
    200
  • 深入了解Angular中的Component组件

    本篇文章给大家介绍一下angular中的component组件。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 Angular 组件(Component) 组件(Component) 是构成 Angular 应用的基础和核…

    2025年3月7日
    200
  • Angular开发者必须学习的19件事

    本篇文章给大家介绍一下成为优秀angular开发者所需要学习的19件事。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 一款to-do app基本等同于前端开发的“Hello world”。虽然涵盖了创建应用程序的CRUD…

    2025年3月7日
    200
  • 详解Angular中的依赖注入模式

    本篇文章给大家详细介绍一下angular中的依赖注入模式。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 Angular 依赖注入模式 依赖注入: Dependency Injection 简称 DI 依赖注入模式要解决的…

    2025年3月7日
    200
  • 详解Angular中的模板语法

    本篇文章给大家详细介绍一下angular中的模板语法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 相关教程推荐:《angular教程》 插值表达式 test-interpolation.component.ts @Co…

    2025年3月7日
    200

发表回复

登录后才能评论