We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
一个组件的显示形态可以由数据状态和外部参数所决定,而数据状态就是state,一般在 constructor 中初始化
state
constructor
当需要修改里面的值的状态需要通过调用setState来改变,从而达到更新组件内部数据的作用,并且重新调用组件render方法,如下面的例子:
setState
render
class Button extends React.Component { constructor() { super(); this.state = { count: 0, }; } updateCount() { this.setState((prevState, props) => { return { count: prevState.count + 1 } }); } render() { return (<button onClick={() => this.updateCount()} > Clicked {this.state.count} times </button>); } }
setState还可以接受第二个参数,它是一个函数,会在setState调用完成并且组件开始重新渲染时被调用,可以用来监听渲染是否完成
this.setState({ name:'JS每日一题' },()=>console.log('setState finished'))
React的核心思想就是组件化思想,页面会被切分成一些独立的、可复用的组件
React
组件从概念上看就是一个函数,可以接受一个参数作为输入值,这个参数就是props,所以可以把props理解为从外部传入组件内部的数据
props
react具有单向数据流的特性,所以他的主要作用是从父组件向子组件中传递数据
react
props除了可以传字符串,数字,还可以传递对象,数组甚至是回调函数,如下:
class Welcome extends React.Component { render() { return <h1>Hello {this.props.name}</h1>; } } const element = <Welcome name="Sara" onNameChanged={this.handleName} />;
上述name属性与onNameChanged方法都能在子组件的props变量中访问
name
onNameChanged
在子组件中,props在内部不可变的,如果想要改变它看,只能通过外部组件传入新的props来重新渲染子组件,否则子组件的props和展示形式不会改变
相同点:
区别:
The text was updated successfully, but these errors were encountered:
No branches or pull requests
一、state
一个组件的显示形态可以由数据状态和外部参数所决定,而数据状态就是
state
,一般在constructor
中初始化当需要修改里面的值的状态需要通过调用
setState
来改变,从而达到更新组件内部数据的作用,并且重新调用组件render
方法,如下面的例子:setState
还可以接受第二个参数,它是一个函数,会在setState
调用完成并且组件开始重新渲染时被调用,可以用来监听渲染是否完成二、props
React
的核心思想就是组件化思想,页面会被切分成一些独立的、可复用的组件组件从概念上看就是一个函数,可以接受一个参数作为输入值,这个参数就是
props
,所以可以把props
理解为从外部传入组件内部的数据react
具有单向数据流的特性,所以他的主要作用是从父组件向子组件中传递数据props
除了可以传字符串,数字,还可以传递对象,数组甚至是回调函数,如下:上述
name
属性与onNameChanged
方法都能在子组件的props
变量中访问在子组件中,
props
在内部不可变的,如果想要改变它看,只能通过外部组件传入新的props
来重新渲染子组件,否则子组件的props
和展示形式不会改变三、区别
相同点:
区别:
参考文献
The text was updated successfully, but these errors were encountered: