## action.js文件为业务逻辑
## 1、关于方法函数:
1、涉及到调用接口异步调用,统一采用async await写法(async漏写会报错);
2、函数嵌套传值写法参照ES6箭头函数的嵌套,代码示例:
~~~jsx
deploy = (info, index) => () => {
this.component.props.setPortalContent && this.component.props.setPortalContent('配置值管理', 'open-portal-config-value-list', {info})
}
~~~
3、涉及到action中更新state有sf和sfs两种写法,很显然能看出来sfs是复数形式表示可以改变多个的值,两种写法 代码示例:
~~~jsx
add = () => {
let confEnvs = this.metaAction.gf('data.confEnvs')
confEnvs = confEnvs.push(fromJS({}))
this.metaAction.sf('data.confEnvs', confEnvs)
}
~~~
~~~kotlin
pageChanged = (current, pageSize) => {
this.metaAction.sfs({
'data.page.currentPage': current || this.metaAction.gf('data.page.currentPage'),
'data.page.pageSize': pageSize || this.metaAction.gf('data.page.pageSize'),
})
}
~~~
如果需要改变多个data值可以一次性写好data对象然后使用sf,也可以分别在sfs中用键值对分别写入。
注:尽量不要混合使用或者使用多个sf在同一个方法里,会影响性能,因为每次改变state都会render dom元素。
## 2、action.js中element元素的写法:
~~~jsx
renderEnvInfo = (info, index, type) => {
return <Input value={info} onChange={this.handleChange(index, type)} />
}
~~~
如上图所示区别于data.js的json串写法。可参考ant.design的示例代码。
注:所用到元素除div、span等基本元素,其他组件均需要在文件开头引入(对应上图input的引入示例:
~~~jsx
import { Input } from 'edf-component'
~~~
- 序言
- 环境搭建
- 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内存那点事