我很困惑组件和react类之间有什么区别?
什么时候在反应类上使用组件?看起来组件是一个类,createClass创建了一个组件。
https://facebook.github.io/react/docs/top-level-api.html
反应组件
这是使用ES6类定义React组件时的基类。有关如何将ES6类与React一起使用,请参见可重用组件。有关基类实际提供的方法,请参见组件API。
React.createClass
创建一个组件类,给定一个规范。组件实现一个返回一个子级的呈现方法。那个孩子可能有一个任意深的孩子结构。使组件不同于标准原型类的一点是,您不需要对它们调用new。它们是方便的包装器,为您构建后备实例(通过new)。
React.createClass
-创建组件类的方法
为了更好地使用ES6模块,请扩展React。Component
,它扩展了Component类,而不是调用createClass
两者之间的一些区别是,
语法: React.create类:
var MyComponent = React.createClass({ });
反应.组成部分:
export default class MyComponent extends React.Component{ }
React.create类:Yes React.组件:否
构造函数():React.createClass:否React.组件:是
PropTypes语法:React.create类:
var MyComponent = React.createClass({
propTypes: { }
});
反应.组成部分:
export default class MyComponent extends React.Component{ }
MyComponent.prototypes = { }
默认属性:React.createClass:
var MyComponent = React.createClass({
getDefaultProps(): { return {} }
});
反应.组成部分:
export default class MyComponent extends React.Component{ }
MyComponent.defaultProps = { }
状态:React.create等级:
State changes can be made inside getInitialState() function
反应.组成部分:
State changes can be made inside constructor(props) function
这个:
React.create类:
automatically bind 'this' values.
Ex: <div onClick={this.handleClick}></div>
'this' can be accessed by default in handleClick function
反应.组成部分:
whereas here we need to bind explicitly,
Ex: <div onClick={this.handleClick.bind(this)}></div>
做同样的事情有两种方法。
React.createClass
是一个返回组件类的函数。
MyComponent = React.createClass({
...
});
反应。Component
是可以扩展的现有组件。主要在使用ES6时有用。
MyComponent extends React.Component {
...
}
MyComponent扩展React.Component唯一不支持的React.createClass
功能是mixin。
要执行以下操作:
class MyComponent extends React.Component {
constructor(props, context) {
super(props, context);
// initial state
this.state = {
counter: 0
};
}
...
}
或者如果你使用像巴贝尔这样的运输工具,你可以
class MyComponent extends React.Component {
state = {
counter: 0
}
...
}
与createClass提供的自动绑定不同,您可以使用. bind(this)
显式绑定,如上所示,或者使用胖箭头ES6语法:
class MyComponent extends React.Component {
onClick = () => {
// do something
}
...
}
您可以将内容放入构造函数中,而不是将其放入componentWillMount中,如下所示:
class MyComponent extends React.Component {
constructor(props, context) {
super(props, context);
// what you would have put in componentWillMount
}
...
}
React留档本身有更多的细节,但基本上React.create类购买的唯一额外功能是混合,但毕竟你可以用混合做的任何事情都可以用上下文和更高顺序的组件来完成。
问题内容: 我在Go中有一个REPL应用,该应用应该对键盘按下事件(每个按下的按键的动作有所不同)做出反应,但是希望在阅读之前按下返回键: 我如何对Go中的按键事件做出反应? 问题答案: 游戏引擎通常实现这种功能。它们通常也与平台无关(通常至少是Windows,Linux,Mac OS X)。例如尝试Azul3D的键盘库。 逻辑就像我的头上一样 要获得当前当前按下的键的列表,只需遍历地图并列出va
我有一个前端webapp开发与React JS,和RestAPI与Spring Boot。当我试图从我的反应应用程序访问API时,我得到一个403错误。我的API Rest部署在tomcat服务器中。
我是一名Android应用程序开发人员,从上一个月开始研究 React 原生。我有问题,对于那些我无法找到解决方案的人: > 确实反应原生使用而不是来表示字体大小,并且如果我们想使用dp来表示字体大小怎么办。 我想为布局提供、和 维度,如何做到这一点? 如何为7英寸平板电脑、10英寸平板电脑和手机提供单独的尺寸?出于某种目的,我想为react-native实现isDeviceTablet()方法,
问题内容: 我有React表单,其中有一个用于渲染下拉菜单的Component,因为这些选项来自API。但是,我无法访问嵌入式组件的引用。我正在整理我的第一个表格,并试图了解解决此问题的最佳方法。 问题答案: 最好将视为回调属性,并且不再依赖于Object。如果确实使用对象,请避免访问后代组件。您应该将其视为私有访问器,而不应将其视为组件API的一部分。仅将组件实例上公开的方法视为其公共API。
我有一个,其中包含一个带有(页面轴)的面板。 我的问题是JScrollPane不会对鼠标滚轮事件做出反应。要让它使用鼠标滚轮滚动,我需要在上。 我找到了这个线程,但没有或,只有。我认为我的问题来自这样一个事实,即我的作用于包含其他面板的。因此,当鼠标在中的面板上时,事件似乎是由这个面板使用的,我从未在滚动面板中看到过。 这里有一个简单的测试用例,试图展示我在Swing应用程序中尝试做的事情。 框架
我看到了一些关于vue的问题。js watchers,但我没有找到一个问题来处理我的问题,所以这里是: 在我的组件中。vue我使用以下代码: 在使用此组件的父vue页面中,我使用了以下功能: 如果我添加了另一个属性,则不会再触发观察者: 编辑:在快乐的回答之后,我的组件部分现在看起来像这样: