91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Angular4 ngrxstore簡介和安裝

發布時間:2020-06-18 03:59:08 來源:網絡 閱讀:1011 作者:vjjy001 欄目:開發技術

1 ngrx store 簡介

對于ngrx store 在angualr2/4 的官方文檔介紹不多。所以我在這里簡單介紹一下ngrx store的概念。ngrx store 是借用redux 對于single page application的狀態管理(state management)理念并且結合了rxjs來實現的。隨著single page application  (單頁web應用)變得越來越復雜,前端對于state management(狀態管理) 變得日益困難。 傳統的mvc 結構框架沒法輕易解決前端對于數據的處理,不同于j2ee 應用,不同頁面的數據交互可以通過session 或者cookie 來解決。 在angualr里面不同component ,module(模塊)間的交互,最常用的是使用service 來共享數據。 但是隨著component 和模塊的增多。 service對于共享數據的處理讓應用變得越來越混論和難以管理。所以ngrx-store 橫空出世, 用來解決發雜的單頁應用的狀態管理。


State manage(狀態管理) 有三個原則

1 Single source of truth(單一狀態對象)

這個原則是整個單頁應用的狀態通過object tree(對象樹)的形式存儲在store 里面。這個定義十分抽象其實就是把所有需要共享的數據通過javascript 對象的形式存儲下來

例子

state =
{
    application:'angular4',
    shoppingList:['iphone'.'HTC']
}


2state is read-only(狀態只能是只讀形式)

這個ngrx-store 核心之一就是用戶不能直接修改狀態內容。 舉個例子,如果我們需要保存了登錄頁面狀態,狀態信息需要記錄登錄用戶的名字。 當登錄名字改變,我們不能直接修改狀態保存的用戶名字

state={'username':'kat'},
//用戶重新登錄別的賬戶為tom
state.username = 'tom'  //在ngrx store 這個行為是絕對不允許的

那么你也許會為,不這樣修改我怎么修改啊? 這里ngrx 引入了一個action的概念。通過store.dispatch(action)觸發修改。 之后我會使用例子說明


3 changes are made with pure functions(只能通過調用函數來改變狀態)

由于不能直接需改狀態,ngrx store 同時引入了一個叫做reducer(聚合器)的概念。通過reducer 來修改狀態。

function reducer(state = 'SHOW_ALL', action) {
  switch (action.type) {
    case 'SET_VISIBILITY_FILTER':
      return Object.assign({},newObj);  
      
      default:
      return state  }}


4 如何安裝ngrx store

npm install @ngrx/core @ngrx/store --save

4.1 如果你使用的angular-cli 那么webpack會自動幫你處理配置

你只需要import 就可以使用

import { Store } from '@ngrx/store';

4.2 如果你使用時舊版的systemjs文件的那么你需要

添加

map: {
    '@ngrx/store': 'nodemodules/@ngrx/store/**/bundles/*.js',
  }


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

沁阳市| 临武县| 泰州市| 化隆| 东源县| 开远市| 通化市| 沿河| 霞浦县| 客服| 新源县| 吴桥县| 湖南省| 桂林市| 宜良县| 定边县| 项城市| 甘洛县| 贵阳市| 雅安市| 旺苍县| 昌宁县| 马山县| 邹平县| 涿鹿县| 大理市| 翁源县| 苏尼特左旗| 临海市| 连山| 鱼台县| 汉川市| 桃园市| 闽侯县| 霍林郭勒市| 晋城| 扬中市| 仙桃市| 密云县| 大余县| 桂平市|