考虑
var MyComponent = React.createClass({
render: function() {
//...
}
});
以及
var element = React.createElement(MyComponent);
具体而言,或具体而言,是"组件"?它是调用React.createClass(..)
返回的对象吗?它是React.createElement(..)
返回的对象吗?它介于两者之间的幕后吗?
答案 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对象,其中包含children
和type
等字段(它还有一个字段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'
}
的实例的任何函数。