React及JSX常见问题
一、新建一个React.createClass类时,变量名的第一个字母必须大写。例如:var Comm = React.creatClass({/*code*/})
二、在JSX里怎么输出{}呢?使用{'{}'}
三、在JSX里标签不要大写,不然无法渲染。比如render:function(){return <P>Error</P>}这段代码是无法渲染到页面里的
四、JSX里的标签是必须有结束符的,按照最正确的html来写JSX,比如:<input type="text" />、<a href="#JSX">TestCode</a>
五、在JSX里或者React.render里调用模板必须有结束字符,加入当前有个模板名是Hello,那调用的时候可以使用<Hello />或者<Hello></Hello>
六、this.setState 方法就修改状态值(state),每次修改以后,自动调用 this.render 方法,再次渲染组件。同类型的还有this.setProps
七、在JSX里使用自定义组件时,自定义组件获取getInitialState return后的值,不需已数组的方式传输值,可以使用{...this.state}来获取getInitialState return后的值,比如<HelloWorld {...this.state} />,也可以把值方便变量里,再使用{...变量名}
八、使用getInitialState来设定最初的默认值的时候,注意使用return {key:'值',key:'值'},而不要使用return (key:'值',key:'值'),也不要不写{}。
九、首次使用一个组件类时,React会依次调用以下方法:
getDefaultProps
getInitialState
componentWillMount
render
componentDidMount
十、随着应用状态(state)的改变。以及组件逐渐受到影响,React会依次调用下面的方法:
componentWillReceiveProps
shouldComponentUpdate
componentWillUpdate
render
componentDidUpdate
十一、React不依赖任何的库,相反还可以和任何的库友好共存。
十二、进行移动开发时,渲染之前需要先调用React.initializeTouchEvents(true),然后使用onTouchCancel onTouchEnd onTouchMove onTouchStart来进行触摸事件的开发