在 ReactJS 中导出(默认)类
Export (default) class in ReactJS
如果我正在创建一个组件,似乎你可以用很多不同的方式创建一个类。这两者之间有什么区别?我怎么知道要使用哪一个?
import React, {Component} from 'react'
export default class Header extends Component {
}
export const Header = React.createClass({
})
export default React.createClass({
})
我只是假设他们做不同的事情,或者只是不同的语法?
如果有人能给我一个快速的解释或链接,我将不胜感激。我不想从一个新框架开始,不知道到底有什么区别。
嗨,欢迎来到反应!
我认为您在这里遇到的部分问题并不是特定于 React,而是与新的 ES2015 模块语法有关。 在创建 React 类组件时,对于大多数意图和目的,您可以将React.createClass
视为功能等同于 class MyComponent extends React.Component
。 一个只是使用新的 ES2015 类语法,而另一个是使用 ES2015 之前的语法。
为了了解模块,我建议阅读一些关于新模块语法的文章来熟悉它。 这里有一个很好的开始:http://www.2ality.com/2014/09/es6-modules-final.html。
简而言之,这些只是语法上的差异,但我会尝试做一个快速演练:
/**
* This is how you import stuff. In this case you're actually
* importing two things: React itself and just the "Component"
* part from React. Importing the "Component" part by itself makes it
* so that you can do something like:
*
* class MyComponent extends Component ...
*
* instead of...
*
* class MyComponent extends React.Component
*
* Also note the comma below
*/
import React, {Component} from 'react';
/**
* This is a "default" export. That means when you import
* this module you can do so without needing a specific module
* name or brackets, e.g.
*
* import Header from './header';
*
* instead of...
*
* import { Header } from './header';
*/
export default class Header extends Component {
}
/**
* This is a named export. That means you must explicitly
* import "Header" when importing this module, e.g.
*
* import { Header } from './header';
*
* instead of...
*
* import Header from './header';
*/
export const Header = React.createClass({
})
/**
* This is another "default" export, only just with a
* little more shorthand syntax. It'd be functionally
* equivalent to doing:
*
* const MyClass = React.createClass({ ... });
* export default MyClass;
*/
export default React.createClass({
})
相关文章:
- 用嵌套函数和默认函数定义函数
- 如何在ReactJS JSX中执行嵌套的if-else语句
- 拨打'父亲'函数形式a'儿童'ReactJS中的组件
- ReactJS映射:如何仅在url变量不为空时呈现html链接
- 如何使用铁流星与流星的默认路线
- 防止Alt+Shift默认操作或检测多种操作系统语言的Javascript
- 如何更改reactjs中外部/独立组件的状态或属性
- CKeditor:更改对话框中的默认选择选项
- 在不阻止默认行为的情况下检测IE10中的缩放
- 如何从外部页面激活非默认引导选项卡
- 防止默认锚点行为AngularJS
- ReactJS和SpringDataRest缓存问题可能与websocket有关
- 我的shareService在angular 2中发送值工作正常,但当我渲染我的另一个组件时,会获得默认值
- jpm的默认Firefox路径没有'不起作用
- jquerydatetimepicker日期和时间应在框默认值中,而无需单击框
- 如果值为空,如何设置输入的默认值?jQuery
- 在 ReactJS 中设置缺失属性的默认值
- 在 ReactJS 中导出(默认)类
- 动态地选择ReactJS作为组件,作为默认的排序
- 如何在reactjs中设置默认值为数字输入字段