lux
一个 Lua Redux 实现
$ opm get IgorMael/lux
Lux
Redux 在 Lua 上
它做什么?
此模块在 Lua 上实现了主要的 Redux 功能。您可以创建存储、分派操作并管理您的状态。
安装和使用
安装
您可以使用 OPM 安装此包。
opm install IgorMael/Lux
创建存储
要创建存储,您应该调用 create_store 函数,它接受一个 reducer(要使用多个 reducer,您需要使用 combine_reducers 将它们组合起来)、一个可选的 initial_state 和一个可选的存储增强器
create_store = function(reducer, initial_state, enhancer)
一个示例
local lux = require 'lux'
local reducer = require 'Reducer'
local store = lux.create_store(reducer)
组合 reducers
在大多数现实世界应用中,您会希望使用多个 reducer。为此,您需要调用 combine_reducers 函数
combine_reducers = function(reducer_list)
一个示例
local lux = require 'lux'
local reducers = lux.combine_reducers({item = reducers.item_reducer, monster = reducers.monster_reducer})
local store = lux.create_store(reducers)
应用存储增强器
apply_middleware is an example of store enhancer, it modifies the dispatch function with middlewares. An example of middleware will soon be disponibilized,
```
apply_middleware = function(...)
```
分派操作
操作必须是一个 Lua 表格,其中包含 type 字段和可选的 payload
store:dispatch(action)
还有一个例子
local lux = require 'lux'
local store = lux.create_store(reducer)
local create_foo = function(name, bar_level)
return {
type = "ADD_MONSTER",
payload = {
id = id,
name = name
}
}
end
store:dispatch(create_foo("FOOBAR", 12))
订阅
您可以订阅存储
store:subscribe(callback)
示例
local lux = require 'lux'
local store = lux.create_store(reducer)
local create_foo = function(name, bar_level)
return {
type = "ADD_MONSTER",
payload = {
id = id,
name = name
}
}
end
store:subscribe(function() print("What a dispatch! Beautiful!")) -- callback will be called after ever dispatch
许可证
此项目在 MIT 许可证下获得许可 - 有关详细信息,请参阅 LICENSE 文件
作者
Igor Mael
许可证
mit
版本
-
IgorMael/lux 0.2.1一个 Lua Redux 实现 2019-02-12 16:23:06
-
IgorMael/lux 0.2.0一个 Lua Redux 实现 2019-02-12 16:02:55