@frank-shaw
2017-02-09T16:36:32.000000Z
字数 1617
阅读 1398
javaScript
ReactDOM.render(ReactElement, DOMElement, callback);这是最基本的REACT调用的渲染方式。
其中,ReactElement可以通过下面的多种途径来实现:
1.React.createElement(type, props, children);
2.JSX----一种REACT特有的类HTML的语法方式;
其中的type(类比HTML中的类型)可以用两种方式来实现:
1.string,直接使用‘div’,‘span’等来表示;
2.使用REACT中最为重要的概念:**components**来表示。通过调用React.createClass(),即可使用components.
a.它有一个名字(建议components的首字母大写),可以直接在ReactDOM中使用,这样就使得它成为了一个真正的组件,用途更加广阔;
b.内部可以直接使用render函数,同时关于beforeRender、rendering、afterRender的周期都会有相应的函数,你可以很好地实现对相应时间段的控制;
c."encloses the components, returns a ReactElement(only one)."
参数有两种类型,一种是props,一种是states。两种参数都遵循一个基本法则:参数只能够由父传递到子,而不能由子传递到父。
关于props,可以设定参数的类型(通过propTypes),它的传递方式类似AngularJS,通过HTML的tag标签来传递。
设定的原则:
All React components must act like pure functions with respect to their props.
关于states,只要 components内部的数据是交互的,那么该components就需要用到states。使用states的过程中,注意:
1.它的作用域只限定在React.createClass()内部,可通过函数getInitialState()来得到最初的state;也可通过this.setState(data,callback)把对应的数据放入到state中(这样就可以实现交互);
2.被放到states里的数据,可通过this.state.params来得到;
3.若父是statable,那么当父re-render的时候,子也会被迫re-render;----这是个非常重要的点
设定的原则
Do Not Modify State Directly
State Updates May Be Asynchronous
State Updates are Merged
Simply ask three questions about each piece of data: