nowa init page
这是根据本人项目需求和个人习惯,定制的脚手架模板. nowa init 和nowa的定制模板, 是开发效率倍增的利器.
- 你可以定义自己的代码模板, 详细请了解nowa的官方文档
- 你可以定义多个代码模板,用于不同的用途. nowa init page | nowa init pageA | nowa init pageB ….1nowa init page
index.js
顶层路由
|
|
末层路由
模板默认生成,无需修改.
嵌套路由
手动添加: 导入子页面和路由嵌套项目
并行路由
手动添加: 导入子页面和路由嵌套项目
PageHome.js
|
|
PageLogic.js
src/pages/home/pages/display/PageLogic.js
React 单向数据流的变化
- page.js => onClick = { this.handlClick} // 触发点击事件
- page.js => this.execute ( ‘setTitle’, ‘钉钉教程’ ) //执行状态处理
- logic.js => setTitle ( { setState }, p ) // 对需要改变的状态进行逻辑处理
- logic.js => setState({ buttonName: p }); // 赋值状态值,并触发了组件的渲染,按钮名字发生了改变
在React中,数据的流向是单向的. 一定要理解清楚属性和状态的关系:
比如我们有个对象, 赋予它属性: 玻璃, 它就具备了玻璃的状态, 赋予它空心圆柱体, 它就有了外观形态.这就是一个玻璃水杯.如果我们赋予它属性: 塑料, 其他不变, 这就是塑料水杯了. 所以,要修改React的组件状态,在外部(上一层)的通过这个组件的props(属性),传到 了组件的内部, 内部再对属性进行logic(逻辑)处理,就像固化程序的流水线一样, 做加工处理,就得到我们想到的结果.
nowa init mod | rmod
注释部分
除了方便阅读外, 主要为了方便复制粘贴了,
const 定义
演示了组件外部的写法, 嵌套过于深的组件,这样外部写,更简洁清晰.
map用法
演示了map循环渲染多个子组件的用法, 注意?这个三元操作符.
- 为啥用map循环,不用for? 因为在混合代码里面不能用for这个同步循环命令.
- 为啥我的json对象,不能map? map仅仅支持数组和map的格式,(本人被这个坑了,纠结了1星期)1234567<List> {data ? data.map((item, key)=> {return ()}) : '' ;}</List>
nowa init api
配置api资源
src/config/develop.json
- API_URL: 真实的api服务的url前缀
- MOCK_URL: 模拟数据的api服务的url前缀
增加api资源
|
|
配置api资源
|
|
绑定api资源
src/apis/index.js
使用资源
PageLogic.js: 这是一个同步化的结构, 使用了ES7的async/await的特性, 可读性更强.
apiSync( Api.area.get, [ userInfo.corpId, userInfo.emplId ], { fit:true, } )
第一个参数: api资源对象
第二个参数: 数组结构 post提交的值
第三个参数: json结构,使用中间件处理 (当前可用: fit log mock )