组件的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);

原文地址:https://www.cnblogs.com/xiaojuziya/p/11094477.html

时间: 2024-08-07 14:36:32

组件的props属性和state状态的相关文章

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

相关文章 React Native入门系列 前言 在Android或者iOS开发中我们会用到很多控件,这些控件会有很多的属性.样式等等.同样的,React Native中的组件也有属性.样式和状态. 1.Props(属性) 组件创建时会设置一些参数来定制这个组件,这些参数就是属性,属性一旦设定,在组件的生命周期中就不会改变.下面拿Image的source属性和Text的onPress属性作为举例. Image的source属性 import React, {Component} from 're

创建组件的方法,组件的props属性、state属性的用法和特点,父子组件传值,兄弟组件传值

1.创建组件的方法   函数组件   class组件 1.1 函数组 无状态函数式组件形式上表现为一个只带有一个 `render()` 方法的组件类,通过函数形式或者 `ES6` 箭头 `function`的形式在创建,并且该组件是无state状态的.具体的创建形式如下 1 import React from 'react '; 2 3 //定义一个React组件 4 function App() { 5 return ( 6 <div> 7 hello React... 8 </div

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

一:Props(属性) 大多数组件在创建时就可以使用各种参数来进行定制.用于定制的这些参数就称为props(属性).props是在父组件中指定,而且一经指定,在被指定的组件的生命周期中则不再改变 通过在不同的场景使用不同的属性定制,可以尽量提高自定义组件的复用范畴.只需在render函数中引用this.props,然后按需处理即可.下面是一个例子: import React, { Component } from 'react'; import { AppRegistry, Text, View

【Vue】组件watch props属性值

#HTML<div id="example"> <p> <child :msg="msg"></child> </p> <p> <button @click='props'>改变props</button> </p> </div> #JS Vue.component('child', { props: ['msg'], computed: { va

React的state属性与props属性

state属性和props属性是隶属于React的component的两个重要属性 在React中,每一个class(类)和面向对象的函数一样,都有一个构造函数constructor(),可以对对象.属性等进行初始化,因此要初始化state,可以将其放在:   state属性     constructor(){ //初始化对象.属性等 } import React from 'react'; export default class BodyIndex extends React.Compon

react篇章-React State(状态)-组件都是真正隔离的

<!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title>React 实例</title> <script src="https://cdn.staticfile.org/react/16.4.0/umd/react.development.js"></script> <script src=&quo

iview中父组件的数据通过props属性传值给子组件

父组件: render: (h, params) => { return h('a', { attr:{ }, props: { 'v-model':'test', 'key': 'value' }, style: { marginRight: '5px' } }, '查看')) 子组件: props: ['v-model','key'] render: function(h){ return this.v-model + ' ' + this.key;//必须加this关键字 } 原文地址:h

混合开发的大趋势之一React Native State (状态),Style(样式)

转载请注明出处:王亟亟的大牛之路 先安利:https://github.com/ddwhan0123/Useful-Open-Source-Android 今天又加了几个疑难杂症哦!! 上一篇讲了属性,这一篇主要讲 State Style,给出上次的传送门,以便有更好的连贯性:http://blog.csdn.net/ddwhan0123/article/details/52238478 State 状态 在RN中用来描述对象的除了属性Props还有状态State,那么状态又是个什么东西呢? T

Vue.js 系列教程 2:组件,Props,Slots

原文:intro-to-vue-2-components-props-slots 译者:nzbin 这是关于 JavaScript 框架 Vue.js 五个教程的第二部分.在这一部分,我们将学习组件,Props 以及 Slots.这个系列教程并不是一个完整的用户手册,而是通过基础知识让你快速了解 Vuejs 以及它的用途. 系列文章: 渲染, 指令, 事件 组件, Props, Slots (你在这!) Vue-cli Vuex 动画 组件和传递数据 如果你熟悉 React 或者 Angular