Is React.Component the default extension when exporting?

后端 未结 2 1644
陌清茗
陌清茗 2021-01-15 06:13

I am looking through some React projects, and sometimes see-

export default () => {

But other times I see-

export default class

2条回答
  •  攒了一身酷
    2021-01-15 06:39

    The first one is a functional component. However the other code will export a regular class/React component.

    For example

    export default (withHistory, onUpdate) => {
        const history = new HashHistory;
      return (
        
          
        
      );
    };
    

    Will compile (at least with Babel+webpack) to

    ...
    var _reactRouterLibHashHistory = __webpack_require__(35);
    var _reactRouterLibHashHistory2 = _interopRequireDefault(_reactRouterLibHashHistory);
    exports['default'] = function (withHistory, onUpdate) {
          var history = new _reactRouterLibHashHistory2['default']();
          return React.createElement(
            _reactRouter.Router,
            { history: history, onUpdate: onUpdate },
            React.createElement(_reactRouter.Route, { path: '/', component: _routesIndex2['default'] })
          );
        };
    module.exports = exports['default'];
    ...
    

提交回复
热议问题