Jimu is a JavaScript library used to create a configurable experience and is the extensibility framework that consists of the following packages:

  • jimu-core package loads and parses the app config, then loads the layout, theme, and widgets based on the app config. To support this, this package defines several classes like WidgetManager, ConfigManager, ThemeManager, etc. Also, the jimu-core defines the interface of the widget, some common types, and some extension points, which are subject to be extended by other packages and widgets.
  • jimu-layouts package contains common implementations for layout widgets.
  • jimu-ui package contains all the UI components that experiences will utilize. Under the hood, it uses reactstrap and emotion-js. Additionally, more components that are not in reactstrap are added. To reduce the loading size, the components are split into some entries, such as index, setting-components, sql-expression-builder, etc. See API for details.
  • jimu-arcgis package contains all the components that require the ArcGIS API for JavaScript 4.x to run.
  • jimu-for-builder package supports developing the widget setting page.

These packages use the same structure pattern so you can follow the same best practices to use them. Each package defines some entries for import, these entries are put under the root folder of the package. The contents in the lib folder should be considered as the internal contents for the package so you should not import them in your widget. For example, when you need to use the Button component from jimu-ui, you should import it like import {Button} from 'jimu-ui' instead of import {Button} from 'jimu-ui/lib/components/button'.

Your browser is no longer supported. Please upgrade your browser for the best experience. See our browser deprecation post for more details.