pwfe-dom
Version:
palmg web front end dom
80 lines (67 loc) • 2.19 kB
JavaScript
/**
* Created by chkui on 2017/6/26.
*/
'use strict';
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _scrollToTop = require('./lib/app/scrollToTop');
var _scrollToTop2 = _interopRequireDefault(_scrollToTop);
var _router = require('./router');
var _bundle = require('./bundle');
var _bundle2 = _interopRequireDefault(_bundle);
var _util = require('./util');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var element = function element(el) {
if ((0, _util.isElement)(el)) {
return el;
} else {
var El = el;
return _react2.default.createElement(El, null);
}
};
/**
* 前后端同构的App入口。如果需要二次开发,请参照这个模板
* @param {object} props{
* init : {comp:后台初始化的组件,id:初始化组件对应的id}
* routes : 路由列表
* className : app的样式
* header: 头部元素
* children : 内容子元素
* footer:页脚元素
* }
* @return {XML}
* @constructor
*/
var App = function App(props) {
var init = props.init,
routes = props.routes,
className = props.className,
header = props.header,
children = props.children,
footer = props.footer;
return _react2.default.createElement(
'div',
{ id: 'pwfe-app-root', className: className },
element(header),
element(children),
_react2.default.createElement(
_router.Switch,
null,
routes.map(function (i) {
var params = i.url ? {
key: i.id,
component: (0, _bundle2.default)(init.id === i.id && init.comp, i.component),
exact: true,
path: i.url
} : {
key: i.id,
component: (0, _bundle2.default)(init.id === i.id && init.comp, i.component)
};
return _react2.default.createElement(_router.Route, params);
})
),
element(footer)
);
};
module.exports = App;
module.exports.default = module.exports;