1.render
中最好不要放处置惩罚数据的逻辑,不能转变props,state
的值,不然render
后又得render
一次,形成屡次render
),render
中不要用localStorate
,和sessionStorage
(这算是操纵数据,最好让render
之担任展示,术业有专攻).
在组件中,最好不要对props赋值,假如想赋值就用state.由于props能够说是父组件通报的,是牢固的。而state是组件本身的,想怎么搞就怎么搞.所以this.props平常在等号的右侧;this.state平常在等号的左侧。这也是为何有了props还要有一个state的缘由。
2.在pleageRedux
中要求服务器数据,并将效果dispatch
,也能够在效果中再增加一些数据再dispatch
,,如许,在pledge.js
中就能够用this.prop
来猎取这些效果了。
3.在willMount
中设置数据setState
,不会render
.而会在willMount
以后render.
4.
class Pledge extends Component{
constants = {
pages: {
...
},
}
state = {
...
}
}
像上面这类状况,能够不必写
constructor(props){
super(props);
}
这时候,体系自动帮你把这一步做了。
假如是UI
组件的话,最好有
static defaultProps = {
}
static propTypes = {
}
5.完成处置惩罚的handeler
函数,最好写成
const handler = () => {
}
如许能够自动绑定this
运用最简的
const handler() {
}
则不能自动绑定。
然则render
函数则常常运用
render() {
}
用以简化代码
6.运用以下代码
func = () => {
console.log('sss');
};
末端要加分号。而运用以下代码,末端不必加分号。
func () {
console.log('sss');
}
7.当if语句内里没有表达式,只是某个值时 如 if (XXX) 它会自动实行Boolean(xxx)操纵, 即 if(XXX) = if(Boolean(xxx))