手机版

角度输入和输出的用法

时间:2021-08-29 来源:互联网 编辑:宝哥软件园 浏览:

Angular的核心组件化可以说相当彻底。为了实现组件之间的通信,输入和输出是必不可少的。通过对输入输出的学习,加深了对组件化的理解。

组件输入

Angular允许以两种形式定义组件的输入,一种由装饰器@Component中的输入定义,另一种由@Input定义。

输入

首先,介绍了装饰器中使用的输入。Inputs接收一个字符串数组,它指定了我们输入的键名。

@ Component({ selector : ' my-Component ',inputs: ['name']})类MyComponent { name: string}name将对应于我们组件中的name变量。

然后我们定义一个组件,这个组件有时不可避免地会用到其他组件的模板中,所以我们可以这样写。

父组件:

导出类AppComponent { myName=' Zhang San ';}上级组件模板:

app-messages[name]=' my name '/app-messages方括号[]:数据绑定,也称为输入绑定。将等号右边的变量绑定到左边[]的变量。我们的组件:

@ Component({ selector : ' app-messages ',inputs: ['name'],templateUrl: '。/messages.component.html ',styleurls 3360[]。/messages.component.css']})导出类MessagesComponent实现OnInit { name:字符串;}这里我们接受名为的上级组件的myName。

通过上图,很容易看出输入数据的对应关系。

然后我们打印出来,看看变量是否输入成功。

导出类消息组件实现OnInit { name:字符串;ngOnInit(){ console . log(this . name);} }

输入成功!

@输入

上面我们实现了组件的数据输入,但是angular不符合当前的情况,提供了另一种输入法,即@Input。

@ Component({ selector : ' my-Component ' })类MyComponent { @Input() name:字符串;}在我们的组件中定义变量时,只需使用@Input装饰器。与上面相比,当我们使用输入时,我们缺少一个二级声明。这种方法感觉数据的传输关联少,更容易理解,代码更工整。

组件输出

完成组件的输入后,我们应该谈谈组件的输出。要从组件传递数据,可以使用输出绑定。

button(click)=' display()'/button括号():事件绑定,也称为输出绑定。这里我们听点击事件,然后触发显示方法。除了点击,angular还有很多内置事件。当然,当我们编写自己的组件时,我们也可以定制一个事件来与外部通信。

自定义事件

自定义事件需要做三件事:

1.在@Component配置中,创建输出配置项。2.在配置的属性中设置一个事件发射器。3.在适当的时间触发事件,即在要触发的方法中。

让我们看看下面的例子:

@ Component({ selector : ' my-Component ',output s 3360[' new event ']})导出类my Component { new event : event emiteterstring;constructor(){ this . new event=new event emitter();} display(): void { this . newevent . emit(' test event ');}}然后我们可以通过上面模板中的代码实现输出。

如果我们想在父组件中使用这个输出,我们必须使用我们自己的事件。让我们看一个例子:

父组件:

导出类AppComponent {.showEvent(message:字符串){ console . log(` hello : $ { message } `);}}父模板:

App-messages(新活动)=' show event($ event)'/app-messages我们的组件:

@ Component({ selector : ' app-messages ',outputs: ['newEvent'],templateUrl: '。/messages.component.html'})导出类消息组件{ new event : event emiteterstring;构造函数(私有MessageService : MessageService){ this . new event=new event emitter();} display(): void { this . newevent . emit(' test event ');}}我们的组件模板:

button(click)=' display()' trigger/button引用文本然后单击trigger,可以看到输出hello:test事件。数据输出成功!

好了,我们来梳理一下整个输出过程:

1.我们通过内置的click事件定制一个组件来触发显示方法,然后我们将触发我们定制的事件:newEvent。

2.当事件被触发时,他将执行下一个更高层次的方法:showEvent。

3.我们的事件输出一个字符串测试事件,然后通过$event获取输出结果,并将其作为参数传递给上一级的方法showEvent

@输出

和输入一样,angular也为我们提供了第二种输出方式:@Output。

用法类似@input:

导出类消息组件{ @ Output()new event : event emiteterstring;}仅在定义时,省略了重新声明的步骤。

官方参考:https://angular.io/api/core/Component

以上就是本文的全部内容。希望对大家的学习有帮助,支持我们。

版权声明:角度输入和输出的用法是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。