1 id和class的区别:一个文档中id是唯一的,class可以有很多处。
2 getElementById:替换掉div里id为xxx的元素。
3 头两条好弱智,谁叫我之前对js一无所知……
4 marked(string, {sanitize: true}):用markdown格式化字符串。输出要用return {__html: markedString},并且要指定为dangerouslySetInnerHTML(在span中,这样不会被CSS格式化),否则React不会放行(是为了防止XSS攻击)。
5 this.props.children: 就是子节点。
6 注意数组中的每个自定义控件都要有自己的key,来作为排序的依照,否则会报错误->Warning: Each child in an array or iterator should have a unique “key” prop. Check the render method ofCommentList。
7 Best Practice for how to format an array passed in: 最好的方法就是用map然后第一个参数放箭头函数。
8 说到箭头函数,它除了让代码更简练和易读,还有个好处就是会自动修正this的指向,如果用函数作为参数,则一定要手动指定(bind(this))。
9 getInitialState: 重写函数,顾名思义。用来return一个初始化的state,而react native不同,后者是直接在构造函数里指定。
10 在控制性控件的点击事件处理方法中,参数为事件event,有点类似iOS中的target, action模式,event.target就是发出事件的控件,如。event.target.value就可以取出这个input的值。调用event.preventDefault就可以避免这个控件在浏览器里默认的行为。
$.ajax(map): ajax网络请求,使用实例:
$.ajax({
url:this.props.url,
dataType:'json',
type:'POST',
data:yourData,
success:data=>{this.setState({data:data})},
error:(xhr,status,err)=>
{
this.setState({data:comments});
console.error(this.props.url,status,err.toString())
}
});
ajax轮询最佳实践:在componentDidMount中先请求一次,然后再开始轮询。
ReactDOM.render(component, element): 每个js文件的主渲染函数。
注意:
11 JSX语法中React控件的变量要和html的标签字符串区分开,前者首字符大写,而后者小写。比如class这种JS中的关键字,为了在JSX中不至于混淆,后者换成className,还有一些其他类似的例子要注意。
12 吐槽一下网上ReactJS教材也太少了,京东一搜react出来的全是他小弟react native,起源reactJS不讲,直奔native主题,开门见山的功夫让人汗颜。