React的相关基本概念
2018-02-01 13:26
453 查看
初识React
用html编写的UI,当从服务器或用户输入的交互数据动态的改变html的状态,使代码变得越来越复杂且后期维护成本越来越高,因此,f8推出了react,google推出了angularjs,但是angular整体作为一个mvvm框架,其UI组件相对复杂,不利于重用,而react解决了这些问题
react不是一个完整的mvc、mvvm框架,只负责View层
react和web components不冲突
react就是运用组件化的方式处理UI的构成,将UI相对独立的模块定义成组件,或者用小的组件套用构成新的组件,这样的处理方式表明react是高度可重用的
JSX(JavaScriptXML)
jsx其实就是javascript的语法扩展JSX中的表达式要包含在大括号里
userInfo(){ return 'sya HI' } render() { return ( <Text> {this.userInfo()} </Text> ); }
JSX本身就是一种表达式
userInfo(){ return <Text>'sya HI'</Text> } render() { return ( this.userInfo() ); }
jsx在编译之后,会被转化为普通的JavaScript对象
React的渲染
元素时构成React应用的最小单位React开发应用中只会定义一个根节点
要将React元素渲染到根DOM节点中,我们需要把它们传值给render()方法来将其渲染到页面上
class TestComponent extends React.Component{ render(){ return <Text>wakaka</Text> } }
React更新元素渲染(React DOM会比较元素内容先后的不同,在渲染过程中只会更改改变的部分)
组件(Components)和属性(Props)
组件(Components)
组件的名字以大写开头TestComponent就是一个组件
组件必须返回一个单独的根元素Text
class TestComponent extends React.Component{ render(){ return <Text>wakaka</Text> } }
属性(Props)
组件都无法修改其自身的propsclass TestComponent extends React.Component{ constructor(props) { super(props); } render(){ return( <Text>{this.props.title}</Text> ); } } export default class App extends Component { render() { return ( <TestComponent title='wakaka'/> ); } };
状态(state)和生命周期
状态(state)
state被称为本地状态或封装状态,不能设置自身组件以外的任何组件state向下传递,作为其子组件的props,也称为单向数据流
state(状态)更新的俩种方式
不要直接修改 state(状态),用 setState() 代替
this.setState({ title: 'Hello' });
state(状态) 更新可能是异步的,因为this.props和this.state()的形式它接受一个函数而不是一个对象。这个函数将接收前一个状态作为第一个参数,应用更新时的 props 作为第二个参数
this.setState((prevState, props) => ({ counter: prevState.counter + props.increment }));
一个完整的小demo
export default class TestComponent extends React.Component{
constructor() {
super();
this.state = {
title: 'click',
};
}
render(){
return(
<View style={{flex:1,justifyContent:'center',alignItems:'center',backgroundColor:'red'}}>
<TouchableOpacity onPress={() => this.click()}>
<Text>{this.state.title}</Text>
</TouchableOpacity>
</View>
);
}
click(){
this.setState({ title: 'Hello' });}
}
生命周期(执行顺序)
构造函数constructor()渲染函数render()
组件被渲染到DOM之后componentDidMount()
DOM被销毁时componentWillUnmount()
相关文章推荐
- HTML在线编辑器的基本概念与相关资料第1/2页
- mysql相关基本概念
- 集电极开路、漏极开路、上拉电阻、下拉电阻等接口相关基本概念
- windows游戏编程<五>X86 (内存)寄存器相关的基本概念
- HTML在线编辑器的基本概念与相关资料第1/2页
- 集电极开路、漏极开路、上拉电阻、下拉电阻等接口相关基本概念
- 集电极开路、漏极开路、上拉电阻、下拉电阻等接口相关基本概念
- LVM逻辑卷基本概念以及相关操作
- 集电极开路、漏极开路、上拉电阻、下拉电阻等接口相关基本概念
- 单片机相关基本概念
- 大数据学习笔记1——大数据相关的基本概念、学习路线
- NB-IoT的相关资料整理(基本概念,技术优势,典型案例和当前的进展)
- 网络技术基本概念与相关命令
- 和支持向量机(SVM)相关的几个基本概念
- 流媒体相关基本概念
- IPsec相关的一些基本概念
- React基本概念(三)
- react系列(四)Redux基本概念和使用
- JVM相关的几个基本概念
- 图论相关基本概念