按需加载
为了解决在生产环境文件体积过大的问题, React Suite 支持 ES Module,您可以通过打包工具的 Tree Shaking 功能去掉文件中无用的代码。
如果您当前的开发环境不支持 Tree Shaking
, 可以采用以下两种方案。
方案一:手动引入
手动引入,需要在写代码的时候就只引入用到的文件,比如只使用 Button 组件:
import Button from 'rsuite/lib/Button';
引入对应的样式文件:
import Button from 'rsuite/lib/Button';
+ import 'rsuite/lib/Button/styles'; // 引入默认样式 less
也可以引入指定主题样式:
import Button from 'rsuite/lib/Button';
+ import 'rsuite/lib/Button/styles/themes/dark'; // 引入 dark 主题的 less
方案二:使用 babel-preset-rsuite
使用 babel-preset-rsuite 可以在 Babel 编译阶段把代码转换成按需引入的方式。
安装 babel-preset-rsuite
$ npm install babel-preset-rsuite --save-dev
使用
// .babelrc or babel-loader option
{
"presets": ["rsuite"]
}
示例:
// Transforms:
import { Button } from 'rsuite';
// Roughly to:
var _Button = require('rsuite/lib/Button');
参数配置
// .babelrc or babel-loader option
{
"presets": [["rsuite", { "style": true, "theme": "dark" }]]
}
style
(boolean) , 按需引入样式文件。theme
('default'|'dark'), 引入指定主题的样式文件,默认:'default'。
示例:
// Transforms:
import { Button } from 'rsuite';
// Roughly to:
require('rsuite/lib/Button/styles/themes/dark.less');
var _Button = require('rsuite/lib/Button');