Day29 Redx初步介绍

使用目的

随着时代的进步,人们对单一页面的要求日渐复杂化,从过去的静态页面,到後来需要包括服务器回应和快取的资料,以及本机建立而尚未回传到服务器等资料,为了完成这些需求,需要一个更复杂的State去管理,而Redux便是为了解决此问题出现的工具,它藉由强加某些限制在更新发生的方式和时机上,让 state的变化更有可预测性。

三大原则

  1. 唯一真相来源
    将整个将整个应用程序的state,储存在一个树状物件里面,redux给他一个名字叫store。这可以让从服务器来的state可以更系统化的管理,并且可以储存开发期间应用程序的state,这可以帮助开发人员更快速的完成复原需求。
console.log(store.getState())

/* Prints
{
  visibilityFilter: 'SHOW_ALL',
  todos: [
    {
      text: 'Consider using Redux',
      completed: true,
    },
    {
      text: 'Keep all state in a single tree',
      completed: false
    }
  ]
}
*/

2.State 是唯读的
唯一一个改变state的方式是发出一个action,action为一个描述发生什麽事的物件。集中管理并储存所有发生变化的action,之後debug或测试时可以用。

store.dispatch({
  type: 'COMPLETE_TODO',
  index: 1
})

store.dispatch({
  type: 'SET_VISIBILITY_FILTER',
  filter: 'SHOW_COMPLETED'
})

3.变更被写成 pure function
若要指定store用哪个action来改变的话,必须写 pure reducer。reducer是一个pure function,它会先取得先前的 state 和一个action,并回传下一个state。


<<:  DAY 29 - 殭屍女孩 (2)

>>:  Day 29 - 在 VyOS 上设定 GRE

自动化 End-End 测试 Nightwatch.js 与 BrowserStack

前一篇提到可以更改 session name 也可以标注 pass/fail 接着就可以将昨天提到的...

数字谎言

前言 在这个蔬菜是有机的、水果都会甜、衣服耐洗不缩水、满街百年创始老店、车子很省油、房…的社会当中,...

用 Python 畅玩 Line bot - 19:加入与移除好友

当加入一个 line bot 的时候,通常 bot 会传送一个欢迎讯息给使用者,而此设定除了可以透过...

[day7]呼叫永丰API及流程串接整理

今天先来进行呼叫永丰API 串接永丰API 按照范例测试,主要针对建立订单进行实作,查询订单等API...

[day-2] 基础Python介绍,何谓Python以及它的实际用途

为何选择Python ?而不是其他的语言。 每个程序语言都有属於它们的专长,Python是一种高阶语...