react入门

react入门
laiqun@msn.cn |
1. react要解决的问题
降低页面从服务器和用户输入得到数据,来展示页面的过程的复杂性。
2. react中CSS的写法
1. css类选择器的写法: 以前是class,现在要改成className,原因是和ES6的javascript语法冲突,ES6可以用class类定义类
<style>.alert-text{color:red;}</style><script type="text/jsx">var Hello = React.createClass({render:function() {return <div className="alert-text">Hello {this.props.name} </div>;//{xxx}表示执行javascript表达式xxx}});React.render(<Hello name="World")/>,document.getElementById('container'));
</script>
2. 内联样式的写法:styleObj的方法 ,并赋值给相应的组件属性
style="color:red"//在组件的属性里这样会报错,//不再使用字符串的方式,而是使用对象,对象的每个键用驼峰命名styleObje = {color:"red",fontSize:"44px"};var Hello = React.createClass({render:function() {return <div style ={styleObj} >Hello {this.props.name} </div>;//{xxx}表示执行javascript表达式xxx}});
3. react的生命周期
- 生命周期图
状态说明:
- Mounted:React Components被render解析生成相应的DOM节点,并被插入浏览器的DOM结构的一个过程。通俗的说就是能看到相应的节点时,就是Mounted完成了
- Update: 一个mounted的Component被重新render的过程,只有state确实发生改变且影响到了DOM结构的时候,才重新渲染
- Unmount: 一个mounted的Componet对应的DOM结构被从DOM结构中移除的过程。
- hook说明图:上图的每一个状态,都添加了相应的hook函数,详见下图
props和state的对比、相关性
- 对比:props是有父组件传递给子组件的,一般认为给定了之后,不怎么发生变化;而state是组件私有的
- 相关性:componentWillReceiveProps接收到props之后,可以对比之前的props,决定是否更新组件的state
4. react的事件绑定
命名方式:(类似onClick的驼峰命名,区别于原生html的全小写) 用props的方式存自身函数
1. 回调函数中:获取到子组件的DOM(需要使用ref属性),操作DOM
var TestClickComponent = React.createClas({handleClicik:function(e){var tipE = React.findDOMNode(this.refs.tip);if(tipE.style.display === "none"){tipE.style.display ="inline";}else{tipE.style.display ="none";}e.stopPropagation();e.preventDefault();}render:function(){return (<div><button onClick={this.}>显示|隐藏</button> <span ref="tip">测试点击</span></div>);}});
- 回调函数中:更新state,引起相应重绘
var TestInputComponent = React.createClass({getInitialState:function() {
return {
inputContent:''
};
},
changeHandler:function(e){
this.setState({
inputContent:e.target.value
});
e.preventDefault();
e.stopPropagation();
}
render:function(){
return (
<div>
<input type="text" onChange={this.changeHandler}/><span>{this.state.inputContent}</span>
</div>
);
}
});
来自为知笔记(Wiz)
以上是 react入门 的全部内容, 来源链接: utcz.com/z/382973.html

