React-Redux 中间件和异步操作

前面所接触到的 state 状态更新,都是同步更新,但实际上 state 状态更新并不是在用户发起操作的一刻就马上更新,往往还伴随着【请求服务器 -> 等待服务器响应 -> 处理服务器响应 -> 最后更新 state 】这样的一个流程。

React 中使用 React-Redux 入门

React 是一个前端框架,而 Redux 是一种数据处理解决方案,两者之间没有任何直接联系,可以使用 Reduxstore.subscribe 函数订阅监听数据改变,然后手动刷新整个应用,但是这样刷新的效率低下,并不能最大化 React 的优点,而 React-Redux 则是专门用于将 ReactRedux 结合起来,让我们可以使用 state 函数的形式来描述界面,优化应用程序重新渲染。

Redux TodoList 示例

之前使用 React + Redux 写了一个计算功能,现在再来看一个稍微复杂一点的例子。设想有这样一个待办事项列表,用户可以进行的操作为:

  • 添加待办事项;
  • 更新待办事项为已办事项;
  • 删除待办事项;

接下来的这个例子将完成上面所设定的功能。

Redux 多个 Reducer 分拆

Redux 中,对 state 进行计算重新返回的方法通常叫做 reducer,如果 state 比较简单,只在一个 reducer 中也可以清晰的看明白数据处理过程,但 redux 通常用来处理复杂的应用程序,state 结构通常比较庞大,结构比较复杂,如果都写到一个方法里面,非常不便于维护,此时就需要对 reducer 进行拆分成多个子 reducer

React 中使用 Redux 入门

Redux 适合用于前端业务非常复杂,或者需要从多个数据源请求数据等需求。Redux 将整个应用所需要用到的数据组织存放在一个叫做 state 的对象里面,每次从服务器请求数据或者用户交互使数据发生改变之后,都需要先发送一个 action,然后在 action 处理函数中更新 state 对象。和常规做法不同的是,我们并不需要手动去更新 UI,更新 UI 的过程由中间件去完成,state 对象改变之后,UI 会自动更新。

Android 进程间通信工具 AIDL

在使用Binder进行进程间通信,服务端和客户端进行数据传递时,数据的传递(请求、响应)需要将数据打包成Parcel数据包,Parcel数据包写入和读取都需要按相同的顺序,给编码工作造成额外的工作量。而AIDL作为一个工具,可以将符合规范的aidl文件转换为java文件,将数据打包,解包成Parcel的工作给我们实现了,让我们专注于核心业务。