:-: ![](https://avatars2.githubusercontent.com/u/37540303?s=400&u=9de24e566c827a02fccd5f81b268ec0a5b5633fb&v=4)
命名来源:TTK是三国演义(The Three Kingdoms)的简称,它代表一支长期从事企业应用开发的团队。
愿景:为企业应用开发提供快速、高效、稳定的技术平台。
技术背景:[框架](https://github.com/thethreekingdoms/ttk-app-core)基于React、Redux核心技术,在该技术栈的基础上进行了功能改进。该框架简单易用、功能强大、风格统一、浏览器兼容、性能、稳定性等方面都有着很大的优势。
总结结构:
![](https://thethreekingdoms.github.io/ttk-ppt/core.png)
1. ## github开源地址 ##
[https://github.com/thethreekingdoms/ttk-app-core](https://github.com/thethreekingdoms/ttk-app-core)
2. ## demo演示地址 ##
[https://thethreekingdoms.github.io/](https://thethreekingdoms.github.io/)
3. ## 组件API
[https://thethreekingdoms.github.io/ttk-component](https://thethreekingdoms.github.io/ttk-component)
4. ## 更多API(antd)、ttk-component是基于antd的封装,增加了企业级的业务组件
[https://ant.design/docs/react/introduce-cn](https://ant.design/docs/react/introduce-cn)
5. ## 框架特性
[https://thethreekingdoms.github.io/ttk-ppt/](https://thethreekingdoms.github.io/ttk-ppt/)
6. ## 前端开发注意事项
1、sf操作统一放到reducer里设置,如果有批量写状态的话,还是调用reducer的updateArr方法,action里尽量不要写sf操作(IE9下已经证明sf效率非常低,而且不符合Redux的设计原则)。
2、后端返回的数据,要有取舍的setstate,特别是数据量大的时候不要放state里。
3、data.js里尽量少用表达式,可以减少重复渲染。
4、如果业务场景需要新的第三方组件,不要直接import,使用按需加载,组件库里不要加index2.js,index3.js这样的组件了(添加新的插件有专人负责,私自添加无法生效)
5、表格控件选型标准(可编辑表格必须统一使用datagrid,数据量大需要启用lazyload特性,带多重表头的表格统一使用ant table,数据量大的情况下,要启用virtual table特性)
6、静态资源图片统一放到vendor/image下,按模块名存放。
7、app名称必须小写,组件名首字母大写,可参考(ttk-fed规范)。
8、使用的settimeout,setinterval必须要清除,注册的事件要在页面卸载后销毁。
9、禁止开发app的样式互相冲突,每个app的样式按名称隔离。
10、禁止组件库里出现业务代码,所有组件开发要遵守react开发规范。
11、data.js里,children同级中,name不要重复。
12、方法、变量,必须加注释,便于维护、升级、协同。
13、一个方法中,尽可能地只实现1个功能。
14、代码的缩进等格式不一致,需统一使用同配置的美化插件。
15、react组件中,属性名不对,如:class,应该用className。
16、组件传值注意类型(组件的API参考antd官网)如:
1)Col 的span,应该传入number类型,有些传入了string。
2)DatePicker的disableDate,应该传入function,有些传入了string。
3)react的列表,key值,应该是独一无二的不变的值,有些传入了数组的索引index
17、action.js里的主要功能包括接口调用、页面动作
reducer.js里的主要功能是对接口返回的数据进行操作、存储
如果遵循以上原则的话,那在action里sf的机会就会很少了
### 选择TTK框架,就已经帮您节省了70%的代码工作量
需编写少量代码,即可快速完成各类系统的开发,简单的拼装,快速实现业务场景复杂的需求,最大程度上帮助企业节省时间成本和费用。
提供[代码]()和[文档](),如果在看完源代码和文档之后还有疑问欢迎[加群]()讨论。
- 序言
- 环境搭建
- node环境安装
- npm国内源切换
- git知识学习
- git安装
- git基本操作
- gitSSH配置
- vscode安装使用
- 安装
- git使用
- 前端开发环境
- 安装脚手架及创建页面
- 框架源码目录结构
- 相关API
- 项目启动
- 如何运行
- 如何兼容到IE8
- 启动参数说明
- IE8环境下兼容总结
- 注意的效率问题
- 框架亮点
- 相关技术栈介绍
- 功能强大的UI组件库
- 数据驱动视图
- 通用的公共类库
- 组件视图生成器
- 嵌入第三方站点
- 简单易用-react
- 简单易用-redux
- 1分钟入门示例(hello world)
- 高级概念
- 入门概念
- 高级概念-1
- 前后端联调
- 其它常用场景
- 详细介绍(action、data、reducer)
- action.js
- data.js
- reducer.js
- 进阶
- Mock数据
- 引入第三方插件
- 模块拆分
- iframe接入
- 页面模型生成器
- webpack@3升级到4.x
- 生产部署
- 生产打包
- nginx部署
- tomcat部署
- hbuilder打包部署
- nodejs部署
- docker部署
- 常见问题
- 兼容IE8
- 自动升级
- 贡献模板
- 浏览器支持统计
- 前端调试
- 注意事项(重要)
- 内存泄漏
- JavaScript内存那点事