项目简介
这是一个基于React框架的模块化组织框架,通过清晰分离组件、逻辑和数据模型,使代码更易于维护和管理。该框架适用于重逻辑和重数据模型的场景,且框架简洁,仅暴露Model基础类、render方法、createStore方法和connect方法。
项目的主要特性和功能
- 模块化组织:采用模块化方式管理组件、逻辑和数据模型,代码结构清晰,便于维护。
- Action类:以ES6的class形式实现,代表逻辑操作,包含业务和交互逻辑。
- Model类:代表数据模型,自动继承基础类,有set、get、on、off、trigger等方法,便于数据管理和事件处理。
- 组件渲染:通过render方法结合action和组件,组件通过props获取model内的数据实现渲染。
- 高阶函数与高阶组件:render作为高阶函数连接action和组件;connect方法连接组件和store,实现数据与组件绑定。
安装使用步骤
假设用户已下载本项目的源码文件。
1. 依赖安装:使用npm或yarn安装项目依赖,运行npm install
或yarn install
。
2. 配置模型与组件:根据项目需求,配置相应的Action类、Model类和组件。
3. 创建Store:使用createStore
方法创建store,传入需要的model类。
4. 连接组件与Store:使用connect
方法连接组件和store,选择需要关联的model。
5. 运行项目:在项目中运行React开发服务器,可使用npm start
或相应的开发服务器命令。
API说明
render方法
- 参数说明:
options
为包含actions、state等配置信息的对象,返回一个函数,该函数接受组件作为参数,返回与action和state绑定的新组件。
Model类
- 方法说明:
set
:设置数据,可传入对象或键值对参数,触发change事件和对应的change:事件。 get
:传入键名获取对应的值。has
:判断属性是否存在。deepClone
:深拷贝data对象。previous
:获取上一次修改的数据值。on
、off
、trigger
:事件订阅、取消订阅和触发方法。
createStore方法
- 参数说明:传入一个或多个Model类的数组,创建对应的store实例。
connect方法
- 参数说明:传入需要连接的model名字数组,将store与组件关联。
注意事项
- 本框架使用了ES6的class静态属性语法,需要安装babel-plugin-transform-class-properties插件。
- 使用Model时,需定义name和data属性,name属性将挂载到props和action实例的models属性上,data属性用于定义数据模型。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】