1、父组件调用子组件的时候传入数据
<app-header [msg]="msg"></app-header>
2、子组件引入Input模块
import { Component, OnInit,Input } from '@angular/core';
3、子组件中@Input接收父组件传过来的数据
export class HeaderComponent implements OnInit {
@Input() msg:string
}
4、子组件中使用父组件的数据
<h2>这是头部组件--{{msg}}</h2>
1、调用子组件给子组件定义一个名称
<app-footer #footerChild></app-footer>
2、引入ViewChild
import { Component, OnInit ,ViewChild} from '@angular/core';
3、ViewChild 和刚才的子组件关联起来
@ViewChild('footerChild') footer;
4、调用子组件
run(){
this.footer.footerRun();
}
1、子组件引入 Output 和 EventEmitter
import { Component, OnInit ,Input,Output,EventEmitter} from '@angular/core';
2、子组件中实例化 EventEmitter
@Output() private outer=new EventEmitter<string>();
/*用EventEmitter和output装饰器配合使用 <string>指定类型变量*/
3、子组件通过 EventEmitter 对象outer实例广播数据
sendParent(){
this.outer.emit('msg from child')
}
4、父组件调用子组件的时候,定义接收事件,outer 就是子组件的 EventEmitter 对象 outer
<app-header (outer)="runParent($event)"></app-header>
5、父组件接收到数据会调用自己的 runParent 方法,这个时候就能拿到子组件的数据
//接收子组件传递过来的数据
runParent(msg:string){
alert(msg);
}
1、公共的服务
2、Cookie
3、Localstorage(推荐)
set(key,value){
localStorage.setItem(key,JSON.stringify(value));
}
get(key){
return JSON.parse(localStorage.getItem(key))
}
remove(key){
localStorage.removeItem(key);
}