提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 一、react-native 的生命周期
- 二、redux的使用
- 三、React的组件化思想
- 四、注意事项
-
-
-
-
- 1、无意义的view可以尽量使用 React.Fragment 或者空标签<> 这样不会产生新的节点
- 2、var, let, const
- 3、尽量别使用 TouchableWithoutFeedback 使用TouchableOpacity actciveOp
- 4、所有重复渲染记得加key,很多解决不了的,刷新不了的,大部分用key可以解决
- 5、使用ImageBackground的时候千万记得给source
- 6、使用TextInput的时候Android默认有个padding, 记得设成0 ,多行的时候给lineHeight。
- 7、用类组件的话多使用箭头函数,避免新手搞不懂this指向的问题。
- 8、函数组件Hooks 用useState的时候是不能直接拿到等待结果的,只能用useEffect去监听,如果想更快的拿到可以用useRef的变量去接收下。
- 9、下划线声明是js的私有方法。不想外面访问的内部方法需要加上。
- 10、borderRadius 最好别用ux3做适配,UI和咱们提的圆角有锯齿都是因为它。
- 11、枚举、常量、统一放到一起
-
-
-
- 五、新页面开发的基本流程 。。
一、react-native 的生命周期
constructor() {
//在项目中见到过在这里面setstate 导致报错
super();
this.state = {
number: 0}
}
componentDidMount(){
//这里我们正常请求网络做自己的异步操作
}
render(){
} //在项目里面也发现过大量的计算,双循环啥的。不要放到这里
componentWillUnMount(){
} //定时器、监听订阅 记得销毁
shouldComponentUpdate(newProps, newState) {
//PureComponent 和普通的component区别就在这里。默认的是做深层次比较,对象不论多深,都会做判断。
对应hooks RenderBalanceItemView = React.memo()第二个参数
if (newState.number<15)
return true;
return false
}
componentDidUpdate(prevProps, prevState) {
//props改变之后 redux 偶尔会用
}
// react 16后面新加的
...
二、redux的使用
1. Store
就是保存数据的地方,你可以把它看成一个容器。整个应用只能有一个 Store。
Redux 提供createStore这个函数,用来生成 Store。
export const store = createStore(AppReducer, composeWithDevTools(applyMiddleware(thunkMiddleware, epicMiddleware)));
1、Action
State 的变化,会导致 View 的变化。但是,用户接触不到 State,只能接触到 View。所以,State 的变化必须是 View 导致的。Action 就是 View 发出的通知,表示 State 应该要发生变化了。
Action 是一个对象。其中的type属性是必须的,表示 Action 的名称
const action ={
type: ADD_ROOT_COMPONENT,
component,
props,
}
2. Creator Action
我们定义方法直接生成action
/**
* 在根节点增加元素
* @param component 组件类
* @param props 组件属性对象
* @returns {
{type: string, component: *, props}}
*/
export function addRootComponents(component, props