组件的props属性和state状态

Posted xiaojuziya

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了组件的props属性和state状态相关的知识,希望对你有一定的参考价值。

props属性:

  我使用代码来说明React中props属性:

// Profile.jsx
import React from react ;
export default Class Profile extends React.Component 
    // render 是这个组件渲染的Vitrual DOM结构
    render() 
        return (
            <div className-"profile-component">
                </*this.props就是传入的属性*/>
                <h1>my name is this.props.name</h1>
                <h2>my age is this.props.age</h2>
            </div>
        )
    

用这种方式,就实现了一个React的组件,在其他的组件中,可以像html标签一样引用它。有了组件以后,可以使用React提供的另外一个库ReactDOM把这个组件挂载到DOM节点上。

// app.jsx
import   render  from react-dom;
import Profile from ./profile;
render(<Profile name="lewis" age=26 />, document.getElementById(app));
// 或者可以使用...属性拓展
const props = 
    name: lewis,
    age: 26
;
render(<Profile ...props />, document.getElementById(app));

 

state状态:

  state是组件内部的属性。组件本身是一个状态机,它可以在constructor中通过this.state直接定义它的值,然后根据这此值来渲染不同的UI。当state的值发生改变时,可以通过this.setState方法让组件再次调用render方法来渲染新的UI。
//Profile.jsx
export default class Profile extends React.Component 
  constructor (props) 
    super (props);
    this.state = 
      liked: 0
    ;
    this.likedCallback = this.likedCallback.bind(this);
  
  likedCallback() 
    let liked = this.state.liked;
    liked++;
    this.setState(
      liked
    );
  

  render() 
    return (
      <div>
        <h1>我的名字叫this.props.name</h1>
        <h2>我今年this.props.age</h2>
        <button onClick=this.likedCallback>点赞</button>
        <h2>总点赞数:this.state.liked</h2>
      </div>
    )
  
  和上面描述的一样,在constructor中添加this.state的定义,每次单击按钮以后调用回调函数,给当前liked值加1,然后更新this.setState完成UI的重新渲染。因为在ES6 class 类型的component组件声明方式中,不会把一些自定义的callback函数绑定到实例上,所以需要手动在constructor里面绑定。
this.likedCallback = this.likedCallback.bind(this);

以上是关于组件的props属性和state状态的主要内容,如果未能解决你的问题,请参考以下文章

React Native入门组件的Props(属性)和State(状态)

ReactReact全家桶组件+组件三大核心属性state-props-refs+事件处理与条件渲染+列表与表单+状态提升与组合+高阶函数与函数+函数柯里化

ReactReact全家桶组件+组件三大核心属性state-props-refs+事件处理与条件渲染+列表与表单+状态提升与组合+高阶函数与函数+函数柯里化

React Native知识11-Props(属性)与State(状态)

3react-props/state

3react-props/state