react props与render成员函数

props是组件固有的属性集合,其数据由外部传入,一般在整个组件的生命周期中都是只读的,React的API顶层设计也决定了这一点。属性初值通常由React.createElement函数或者JSX中标签的属性值进行传递,并合并到组件实例对象的this.props中。事实上,组件接受静态信息的主要渠道就是props属性。

比如:

 var HelloBox = React.createClass({

      render : function() {

      return <div>{‘Hello‘+this.props.myattr }</div>;

      }
    })

    React.render(<HelloBox myattr = "world" />,mountNode);

  或者

  

React.render(

    React.createElement(

      HelloBox,

      {myattr:‘world’}

    ),

    mountNode
   );

    props中也会包含一些由React自动填充的数据,this.props.children数组中会包含本组件实例的所有子组件,由React自动填充。另外,还能通过配置实现this.props.context跨级包含上级组件的数据等。

此外,props与state的区别体现在,props不能被所在组件修改,从父组件传进来的属性不会在组件内部更改;state只能在所在组件内部更改,或在外部调用setState函数间接修改状态。




render函数

  render主要流程是检测this.props和this.state,再返回一个单一组件实例,也可以返回null或者false表明不需要渲染任何东西,对应的React渲染一个<noscript>标签来处理。当返回null或false的时候,this.getDOMNode()将返回null。

render函数应该是纯粹的,也就是说,在render函数内不应修改组件state,不读写DOM信息,也不与浏览器交互,比如调用setTimeout就是一种与浏览器的交互。如果确实要与浏览器交互,componentDidMount()中或者其他生命周期方法中设置。

  React组件只能渲染单个根节点。如果想返回多个节点,它们必须被包含在同一个父节点中。

原文地址:https://www.cnblogs.com/omiturix/p/10790360.html

时间: 2024-08-30 04:27:20

react props与render成员函数的相关文章

8. react 基础 - props 默认值和类型限制 与 Props , State , render 函数 关系

一. PropTypes 与 DefaultProps 官方文档 1. PropTypes 属性校验 引入 PropTypes import PropTypes from 'prop-types'; 强校验 props 属性 eg: import React, { Component } from 'react' import PropTypes from 'prop-types' class TodoItem extends Component{ constructor(props){ sup

C++学习笔记(2)---2.5 C++函数编译原理和成员函数的实现

转载自:http://c.biancheng.NET/cpp/biancheng/view/2996.html点击打开链接 从上节的例子可以看出,对象的内存模型中只保留了成员变量,除此之外没有任何其他信息,程序运行时不知道 obj 的类型为 Demo,也不知道它还有一个成员函数 display().那么,究竟是如何通过对象调用成员函数的呢? C++函数的编译 C++和C语言的编译方式不同.C语言中的函数在编译时名字不变,或者只是简单的加一个下划线_(不同的编译器有不同的实现),例如,func()

类的成员函数的指针

前面一篇文章<函数的指针 >介绍了全局函数的指针,现在我们再来介绍一下成员函数的指针. 成员函数指针的定义: 一般形式 Return_Type (Class_Name::* pointer_name) (Argument_List); 用typedef简化的形式 Typedef Return_Type (Class_Name::* FuncPtr_Type) (Argument_List); FuncPtr_Type pFunc = NULL; //pFunc为成员函数指针的指针变量 成员函数

Time类的定义(成员函数)

2-2 Time类的定义 Time Limit: 1000MS Memory limit: 65536K 题目描述 通过本题目的练习可以掌握类与对象的定义: 设计一个时间类Time,私有数据成员有hour(时).minute(分).second(秒): 公有成员函数有:setHour(int)设置数据成员hour的值,非法的输入默认为12:setMinue(int)设置数据成员minute的值,非法输入默认为0:setSecond(int)设置数据成员second的值,非法输入默认为0:setT

C++成员函数指针错误用法警示(成员函数指针与高性能的C++委托,三篇),附好多评论

今天做一个成绩管理系统的并发引擎,用Qt做的,仿照QtConcurrent搞了个模板基类.这里为了隐藏细节,隔离变化,把并发的东西全部包含在模板基类中.子类只需注册需要并发执行的入口函数即可在单独线程中执行.最终目标是,继承的业务逻辑类外部调用时有两个接口可选,调用syncRun同步执行:调用由引擎自动生成的asyncRun就异步执行.最终自动生成asyncRun的模板基类没能实现,主要原因是mingw对this处理的太有问题了!!原本以为编译器问题,后来才知道成员函数指针和this指针如此特殊

重载类的new和delete运算符成员函数

重载类的new和delete运算符成员函数1. 调用new时,先分配内存,后调用构造函数.调用构造函数的行为由编译器控制.2. 调用delete时,先调用析构函数,后释放内存.调用析构函数的行为由编译器控制.重载这两个运算符函数的目的是为了控制内存的分配与释放.如果需要对某个类型频繁地创建和销毁大量的对象,new和delete运算过程可能会耗费过多的时间,并且会产生过多的内存碎片.这两个运算符函数的原型:void * operator new(size_t sz);void operator d

【C++缺省函数】 空类默认产生的6个类成员函数

1.缺省构造函数. 2.缺省拷贝构造函数. 3. 缺省析构函数. 4.缺省赋值运算符. 5.缺省取址运算符. 6. 缺省取址运算符 const. <span style="font-size:18px;"> class A { public: A(){}//缺省构造函数 A(const A&){}//拷贝构造函数 ~A(){}//析构函数 A&operator=(const A&){}//赋值运算符 A*operator&(){}//取址运算

第十三篇:成员函数与非成员函数的选择

前言 相信很多使用C++语言的人都有这么一种错误的观点 - 除了主函数,其他函数都应当声明为某个类的成员函数,以实现封装性. 这种观点错在哪里?我们又该如何在成员函数与非成员函数之间进行选择呢? 针对这个问题,本文将给出一种非常科学的解决方案. 问题分析 假定有一个网页浏览器类,其中有用来清除缓存,清除浏览记录,清除cookies的成员函数: 1 class WebBrowser 2 { 3 public: 4 // ...... 5 void clearCache(); // 清除缓存 6 v

成员函数指针和指向静态成员函数的指针

#include <iostream> using namespace std; class Student{ public:     Student(const string& name):m_name(name){}     void who(void){         cout << m_name << endl;     }     string m_name;     static int s_add(int a,int b){         re