正式来说,什么是反应组成部分?

时间:2016-02-17 02:14:44

标签: reactjs

考虑

var MyComponent = React.createClass({
  render: function() {
    //...
  }
});

以及

var element = React.createElement(MyComponent);

具体而言,或具体而言,是"组件"?它是调用React.createClass(..)返回的对象吗?它是React.createElement(..)返回的对象吗?它介于两者之间的幕后吗?

3 个答案:

答案 0 :(得分:1)

React博客上有一篇帖子可以回答你的问题。

http://facebook.github.io/react/blog/2015/12/18/react-components-elements-and-instances.html

基本上,组件是您的类定义,元素是从@revision_number中的组件创建的,而实例是组件在DOM中的表示。

答案 1 :(得分:0)

显然http://facebook.github.io/react/是这里的权限 - 组件是具有属性,状态和呈现函数的概念构造。虽然前两个是可选的。使用“类”(ES5原型,ES6类等)键入组件,React正式使用createClass函数了解。组件实例是更大整体中的元素,加载到UI上下文(浏览器,电话等),通常称为应用程序,并使用createElement创建。

答案 2 :(得分:0)

This post answers the question in great detail

简而言之:从字面上讲,组件是一个带有props字段的对象的函数,反过来又会返回React.Element。组件可以是纯函数,也可以是JS类(无论如何都是具有语法糖的函数)。您可以通过React.createClass定义组件; React.createClass的输出 - 据我所知 - 仍然是字面上的一个组件(虽然它的几个实例可以通过React在幕后实例化,每个实例都可以通过this内的React.Element访问类定义;这些实例也是组件)。

最后,props只不过是组件实例或dom节点的“描述”。从字面上看,它是一个javascript对象,其中包含childrentype等字段(它还有一个字段React.Element,在文章中有描述)。 至关重要的是,React.createClass()的实例不是一个组件;它只描述一个。此外,prop的输出是一个组件,以及带有React.Element字段的对象并返回apply plugin: 'com.android.application' android { compileSdkVersion 23 buildToolsVersion "23.0.2" defaultConfig { applicationId "com.example.kuldeep.customview" minSdkVersion 16 targetSdkVersion 23 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:23.1.1' } 的实例的任何函数。