State 与 Props 区别props 是组件对外的接口,state 是组件对内的接口.组件内可以引用其他组件,组件之间的引用形成了一个树状结构(组件树),如果下层组件需要使用上层组件的数据或方法,上层组件就可以通过下层组件的props属性进行传递,因此props是组件对外的接口.组件除了使用上层组件传递的数据外,自身也可能需要维护管理数据,这就是组件对内的接口state.根据对外接口props 和对内接口state,组件计算出对应界面的UI. 主要区别: State是可变的,是一组用于反映…
State 是一种数据结构,用于组件挂载时所需数据的默认值.State 可能会随着时间的推移而发生突变,但多数时候是作为用户事件行为的结果.Props(properties 的简写)则是组件的配置.props 由父组件传递给子组件,并且就子组件而言,props 是不可变的(immutable).组件不能改变自身的 props,但是可以把其子组件的 props 放在一起(统一管理).Props 也不仅仅是数据–回调函数也可以通过 props 传递.…
在上两节中,我们讲述了props, 组件使用props进行渲染,但是这是一次性的, props渲染完成之后就不做任何事情了,但是现实中却不是这样的,当我们点击购物车上的加减按钮时,数量会自动加1或减1,还有在就是倒计时效果,这就用了组件内部的状态, 如果一个组件有内部状态,那只能用类式组件,因为类中拥有构造函数,构造函数表示就是一个对象实例上的属性,对象实例上的属性都是特有的,所以也可以称之为对象实例的状态. 在组件的构造函数中声明组件的状态也是很简单,直接写this.state = {},我们…
本文基于React v16.4.1 初学react,有理解不对的地方,欢迎批评指正^_^ 一.定义组件的两种方式 1.函数定义组件 function Welcome(props) { return <h1>Hello, {props.name}</h1>; } 2.类定义组件 class Welcome extends Component { render() { return <h1>Hello, {this.props.name}</h1>; } } 这…
1.默认状态设置 1.constructor (ES6) constructor(props) { this.state = { n: ... } } 2.getInitialState (ES5) 只能用在React.createClass中,extends React.Component不行 2.默认props设置 1.组件外部 (ES6) component.defaultProps = { name: '...' } 2.组件内部 (ES7,必须开启ES7的babel支持) static…
react的状态state React 里,只需更新组件的 state,然后根据新的 state 重新渲染用户界面(不要操作 DOM) class Clock extends React.Component { constructor(props) { super(props); this.state = {date: new Date()}; } componentDidMount() { this.timerID = setInterval( () => this.tick(), 1000…
 多个组件合成一个组件: var style = { fontSize: 20, color: '#ff0000' }; var WebSite = React.createClass({ render: function () { return ( <div style={style}> <Name name={this.props.name} /> <Link link={this.props.link} /> </div> ); } }); var N…
在上一节中, 我们提到了props, 组件之间数据的传递使用props. 我们调用组件时可以设置props, 组件内部通过props获取. 为了props 使用更加友好, React 提供了简单的验证机制,就是我们可以标注我们的组件内部想要使用什么样的数据, 如果使用组件时传递过来的数据不符合要求, React就会抛出warnig, 有利于我们排错. 看一下我们的content 组件, 它内部用到了四个属性, name, item, num, bool, 并且类型也不一致. 我们肯定希望传递过来…
React学习笔记(五) 四.State&声明周期 可以为组件添加"状态(state)".状态与属性相似,但是状态是私有的,完全受控于当前组件. 局部状态就是只能用于类(定义为类的组件)的一个功能. 1. 将函数转换为类 声明一个类,继承React.Component:创建一个render()方法:使用this.props替换props. class Clock extends React.Component { render() { return ( <div>…
眼下React Native(以后简称RN)越来越火,我也要投入到学习当中.对于一个前端来说,还是有些难度.因为本人觉得这是一个App开发的领域,自然是不同.编写本文的时候,RN的版本为0.21.0.我们马上以代码进入今天的学习. 'use strict'; import React, { AppRegistry, Component, StyleSheet, Text, View } from 'react-native'; class Hello extends Component { re…