0.4.5 • Published 4 years ago

nickelcat-action-preset v0.4.5

Weekly downloads
9
License
Apache-2.0
Repository
github
Last release
4 years ago

NickelCat EXP

敬告,该框架仍然处于实验状态中,架构与处理方式随时可能发生大的变动。请勿立即用于商业项目。

欢迎使用 NickelCat,该项目皆在探索客户端与服务端一体化开发的可能性,专用于为前端框架提供完备的事件逻辑处理服务。

它可以使开发者得以行云流水般书写用户所能触发的每一个事件,例如点击按钮或向输入框中输入些文字。就像这样:

{
  // ...
  onClickButton: [
    setState({ title: 'The dialog will open for 3s(3000ms) later!' }),
    wait(3000),
    createModel('guideDialog')
  ],
  // ...
}

不只是能流畅写成自上而下的逻辑链,在客户端与服务端的逻辑也可以组合在一起,这样我们看到的就是一个更为直观的整体上的逻辑流程。就像这样:

{
  // ...
  onSubmitLoginRequest: [
    createModel('waitDialog', { title: 'Logining...' }, 'loginWaiting'),
    fetch(
      '/api/login',
      (payload, state) => ({ name: state.name, password: state.password })
    ),
    handleOnServer([
      searchDb((payload) => ({ collection: 'users', payload }),
        [
          reply({ state: 'success' })
        ],
        [
          reply({ state: 'fail' })
        ]
      )
    ]),
    destroyModel('loginWaiting'),
    [
      payload => payload.state === 'success',
      createDialog('infoDialog', { title: 'Login success!' }, 'successInfo'),
      wait(3000),
      destoryDialog('successInfo')
    ],
    [
      payload => payload.state === 'fail',
      createDialog('infoDialog', { title: 'Login failed!' }, 'failInfo'),
      wait(3000),
      destoryDialog('failInfo')
    ]
  ]
  // ...
}

这个示例演示了一个从服务器验证登录账户的简单逻辑--先显示正在加载的窗口,紧接着将用户名和密码作为数据向服务器发送请求。服务器根据发来的数据在数据库查表,并根据数据库是否查询到匹配的用户来回复是否成功。在接收到来自服务器的回复后,再根据回复的状态决定显示登录成功或失败的消息。

简而言之,NickelCat 在为开发者构筑一个强劲的后端框架--只需 React 与 NickelCat,就足以优雅地实现整个业务逻辑模型。它不光可以支撑客户端的界面控制逻辑,并且也能为服务端乃至本地混合应用提供支持。

运行示例

请注意,该仓库目前仍处于不稳定状态,随时可能发生大的更改;另外,处于 dev 分支的工程甚至可能无法正常运行。

由于结构大改,因此就连示例都得全部重写,这个项目目前暂时会是一个概念项目,抱歉。

0.4.5

4 years ago

0.4.4

4 years ago

0.4.1

4 years ago

0.4.0

4 years ago

0.3.14

4 years ago

0.3.13

4 years ago

0.3.12

4 years ago

0.3.11

4 years ago

0.3.10

4 years ago

0.3.9

4 years ago

0.3.8

4 years ago

0.3.7

4 years ago

0.3.6

4 years ago

0.3.5

4 years ago

0.3.4

4 years ago

0.3.0

4 years ago

0.2.0

4 years ago