- 时间:2021-01-23 10:50 编辑: 来源: 阅读:
- 扫一扫,手机访问
摘要:Angular 2父子组件数据传递之@Input和@Output详解 (上)
[b]前言[/b]
为了让大家学习起来轻松、易懂,小编尽量做到篇幅短,语言通俗易懂,知识点分段来讲,以免太长了看起来很累,也很容易失去耐心阅读下去,希望大家理解和支持,同时希望大家点赞和分享出去,让更多的志同道合的朋友来学习
Angular 提供了@Input和@Output语法来处理组件数据的流入流出,接下来我们通过@Input和@Output来演示父子组建之间的数据传递
[b]父组件向子组件传递数据[/b]
父组件传递数据到子组件通过@Input方式的现实方式
[b]第一步:定义父组件[/b]
ParentComponent.ts
[img]http://files.jb51.net/file_images/article/201707/20177584526079.png?20176584537[/img]
(1).这里定义了两个类属性user和parent_data,
(2).一个[code]next()[/code]方法,next方法用于将页面输入的数据赋值给parent_data属性
ParentComponent.html
[img]http://files.jb51.net/file_images/article/201707/20177584552037.png?2017658460[/img]
对应的页面:
[img]http://files.jb51.net/file_images/article/201707/20177584926329.png?20176584933[/img]
[img]http://files.jb51.net/file_images/article/201707/20177585030873.png?20176585039[/img]
[img]http://files.jb51.net/file_images/article/201707/20177585054838.png?2017658512[/img]
表单输入数据,点击页面上的按钮,调用页面[code]next()[/code]方法
[code]next()[/code]方法内部将输入的数据user赋值给parent_data。parent_data获取到数据之后在模版中把获取到的值再赋给子组件中先前定义好的data变量到这里父组件就完成 类数据的传递,下面我们看看子组件怎么去接受这个值?
[b]第二步:定义子组件:[/b]
ChildenComponent.ts
[img]http://files.jb51.net/file_images/article/201707/20177585130891.png?20176585137[/img]
[img]http://files.jb51.net/file_images/article/201707/20177585147667.png?20176585155[/img]
(1).这里定义了一个类属性data,并且用@Input装饰器修饰,修饰过后的data变量就具备接受父组件传过来的数据了,这里定义的data就是在页面接收父组件传递的data变量,看下面代码(2).还实现了一个onChanges接口,onChanges接口必须实现ngOnChanges方法,用来监控数据的变化,如果父组件的数据发生变化,我们这里就输出改变后的数据,父组件中表单输入的值发生变化,再点击按钮调用[code]next()[/code]方法,ngonChanges会检测到数据变化,[code] console.log(this.data)[/code]打印新的输出到控制台
下面我们看看效果
[img]http://files.jb51.net/file_images/article/201707/20177585208532.png?20176585226[/img]
[b]总结[/b]
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对编程素材网的支持。