<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        Angular5中狀態管理的實現

        來源:懂視網 責編:小采 時間:2020-11-27 22:08:41
        文檔

        Angular5中狀態管理的實現

        Angular5中狀態管理的實現:前面學習了vue,react 都有狀態管理,如vue中的vuex是全局狀態管理,在任何組件里都可以引用狀態管理中的數據,同樣,react中的redux和mbox也是,但遇到angular5卻不知道了。 一年前使用過angular1.x做過項目,那時全局狀態可以使用$rootscope,也
        推薦度:
        導讀Angular5中狀態管理的實現:前面學習了vue,react 都有狀態管理,如vue中的vuex是全局狀態管理,在任何組件里都可以引用狀態管理中的數據,同樣,react中的redux和mbox也是,但遇到angular5卻不知道了。 一年前使用過angular1.x做過項目,那時全局狀態可以使用$rootscope,也

        前面學習了vue,react 都有狀態管理,如vue中的vuex是全局狀態管理,在任何組件里都可以引用狀態管理中的數據,同樣,react中的redux和mbox也是,但遇到angular5卻不知道了。

        一年前使用過angular1.x做過項目,那時全局狀態可以使用$rootscope,也可以使用服務Service實現,下面就用Service方式在angular5中實現下吧

        先定義狀態管理對象,需要存什么數據,自己定義

        export class UserInfo {
         public userInfo: boolean;
         constructor(){
         this.userInfo = true; //設置全局的控制導航是否顯示
         }
        }
        

        然后定義Service,如下

        import { Injectable} from '@angular/core';
        import { Headers, Http } from '@angular/http';
        import { UserInfo } from './user-info.model';
        
        @Injectable() //注入服務
        export class ListsService{
         private userInfo;
         constructor(private http: Http) { 
         this.userInfo = new UserInfo();
         }
        
         //設置路由顯示的狀態
         setUserInfo(v) {
         this.userInfo.userInfo = v;
         }
         //獲取路由顯示的狀態
         getUserInfo() {
         return this.userInfo;
         }
        }

        配置了service一定要在ngmodule中導入,這樣才能在此module中有效

        import { BrowserModule } from '@angular/platform-browser'; 
        import { NgModule } from '@angular/core';
        import { FormsModule } from '@angular/forms'; 
        import { HttpModule } from '@angular/http';
        
        import { AppComponent } from './app.component'; 
        
        import { AppRouterModule } from './router.module'; 
        import { ViewComponent } from './view.component';
        import { ListComponent } from './list.component';
        import { OtherComponent } from './other.component';
        import { DetailComponent } from './detail.component'; 
        import { ListsService } from './app.service';
        
        @NgModule({
         declarations: [
         AppComponent,
         DetailComponent,
         ViewComponent,
         ListComponent,
         OtherComponent
         ],
         imports: [ 
         BrowserModule,
         FormsModule ,
         AppRouterModule,
         HttpModule
         ],
         providers: [ListsService], 
         bootstrap: [AppComponent] 
        })
        export class AppModule { } 
        
        

        然后就可以在component中使用了

        @Component({
         selector: 'app-root',
         template: `
         <div >
         <div class="lists" *ngIf='userInfo.userInfo'>
         <a routerLink="/view" routerLinkActive ="active">特價展示</a>
         <a routerLink="/list" routerLinkActive ="active">列表展示</a>
         </div>
         <router-outlet></router-outlet>
         </div>
         `,
         styles:[`
         .lists a{
         padding:0 10px;
         }
         .active{
         color: #f60;
         }
         `]
        })
        export class AppComponent {
         private userInfo;
         constructor(private listsService: ListsService) { 
         this.userInfo= this.listsService.getUserInfo();
         }
        }

        在詳情頁中通過改變狀態來改變頁面

        @Component({
         selector: 'app-detail',
         template: `
         <div>
         詳情頁{{id}}
         <button (click)="goBack()">返回</button>
         </div>
        
         `,
        })
        export class DetailComponent {
         private userInfo;
         constructor(
         private route: ActivatedRoute,
         private location: Location,
         private listsService: ListsService
         ) {
         this.userInfo= this.listsService.setUserInfo(false);
         }
         goBack(): void {
         this.location.back();
         }
         //組件銷毀時執行
         ngOnDestroy():void{
         this.userInfo= this.listsService.setUserInfo(true);
         }
        }
        
        

        好了,這樣就ok了。

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        Angular5中狀態管理的實現

        Angular5中狀態管理的實現:前面學習了vue,react 都有狀態管理,如vue中的vuex是全局狀態管理,在任何組件里都可以引用狀態管理中的數據,同樣,react中的redux和mbox也是,但遇到angular5卻不知道了。 一年前使用過angular1.x做過項目,那時全局狀態可以使用$rootscope,也
        推薦度:
        標簽: 中的 狀態 實現
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 亚洲av永久无码精品漫画| 久久青青草原亚洲av无码| 亚洲第一区视频在线观看| 国产在线观看免费av站| 青青草原亚洲视频| 国产精品极品美女自在线观看免费 | 女人张开腿给人桶免费视频| 亚洲国产精品xo在线观看| 午夜免费1000部| 色噜噜亚洲男人的天堂| 久久久久久99av无码免费网站| 亚洲国产福利精品一区二区| 免费a级毛片无码a∨蜜芽试看| 亚洲色精品VR一区区三区 | 国产青草视频免费观看97| 亚洲国产成人精品无码区二本| 午夜爱爱免费视频| 青青视频免费在线| 亚洲日韩欧洲乱码AV夜夜摸| 国产麻豆一精品一AV一免费| 337p日本欧洲亚洲大胆色噜噜| 97在线观免费视频观看| 亚洲AV无码国产精品永久一区| 亚洲第一区精品观看| 不卡视频免费在线观看| 91精品国产亚洲爽啪在线影院 | 国产在线19禁免费观看| 中文字幕在线免费看线人| 亚洲自偷自偷精品| 看全色黄大色大片免费久久| 中文在线免费看视频| 亚洲国产福利精品一区二区| 伊人久久亚洲综合影院| 性色午夜视频免费男人的天堂| 中文无码亚洲精品字幕| 久久久久亚洲AV无码专区网站 | 男男gay做爽爽免费视频| 亚洲VA中文字幕无码毛片| 成人黄动漫画免费网站视频 | 中文字幕免费视频一| 亚洲国产精品成人AV在线|