mobx 上手
如果對Redux的API感到繁瑣,試試mobx吧。
說實話,初讀Redux的文件,腦海中總是充斥著晦澀的概念。但讀mobx的文件感覺比較親切,簡單直接。簡單來說,一個Observable,被觀察的資料。一個Reactions,對狀態變化的時候做出的反映。一個Actions,改變狀態變化。
mobx有兩個特點印象很深,一是裝飾器,裝飾器是ES7的語法,對有些寫js的可能有點陌生,但對於python應該是很親切了,比如flask就用這種簡潔語法寫路由(不知道以後node也會不會出現裝飾器寫法的web框架)。
裝飾器簡單來說就是傳入一個函式,返回一個被包裝的函式,對js來說不新鮮,新鮮的只是語法而已:
function warp(fn) {
function inner() {
console.log(fn.name);
return fn();
}
return inner;
}
function foo() {
console.log('fn')
}
warp(foo)()
另一個mobx是物件導向的特點,在它的todo範例,store的資料夾叫models,
todolist的model程式碼如下
import { observable, computed, action } from "mobx";
import TodoModel from "./TodoModel";
export default class TodoListModel {
@observable todos = [];
@computed
get unfinishedTodoCount() {
return this.todos.filter(todo => !todo.finished).length;
}
@action
addTodo(title) {
this.todos.push(new TodoModel(title));
}
}
這個store的定義非常具有物件導向的味道,在我看來也比函數語言程式設計更清晰。
相關文章
- Mobx
- Mobx 初探
- React MobX 開始React
- React-mobx解析React
- mobx基本概念
- Mobx autorun 原理解析
- mobx專案實踐
- mobx動態新增observable
- 認識一下 Mobx
- redux和mobx入門使用Redux
- Mobx 原始碼解析 二(autorun)原始碼
- Mobx 原始碼解析 一(observable)原始碼
- MobX流程分析與最佳實踐
- Mobx在Flutter中的使用教程Flutter
- Mobx 原始碼與設計思想原始碼
- Proxy詳解,運用與Mobx
- Mobx 與 Redux 的效能對比Redux
- 狀態管理庫MobX和reactReact
- 狀態管理庫 MobX 和 reactReact
- Redux vs Mobx系列(-):immutable vs mutableRedux
- 上手mongodbMongoDB
- stylus上手
- mobx原始碼解讀—— autorun 與 observable原始碼
- react-native+mobx的基礎搭建React
- Vuex、Flux、Redux、Redux-saga、Dva、MobXVueRedux
- Mobx入門和較佳實踐
- 在react中使用Mobx問題總結React
- 擺脫redux繁瑣操作,搭建mobx框架Redux框架
- react-native + mobx 入門到放棄React
- 從零開始用 proxy 實現 Mobx
- 個人愚見:Redux 和 Mobx 區別Redux
- docker 快速上手Docker
- Redis 快速上手Redis
- JDBC快速上手JDBC
- Flask快速上手Flask
- Maven快速上手Maven
- gtest快速上手
- 快速上手BootstrapVuebootVue