Загружать модуль echarts по запросу
Когда нам нужны только модули строки и всплывающей подсказки echarts, мы бы написали:
import echarts from 'echarts/lib/echarts'
import 'echarts/lib/chart/line'
import 'echarts/lib/component/tooltip'
скопировать код
Когда этот плагин вводится, нам нужно написать только это:
// eslint-disable-next-line
const echarts = equire([
'line',
'tooltip'
])
скопировать код
Этот плагин автоматически поможет нам конвертировать в вышеуказанную форму
Установить
npm i babel-plugin-equire -D
Затем в.babelrc
добавить плагин в файл
{
"plugins": [
// other plugins
...
"equire"
]
}
скопировать код
Применение
Создайте новый файл initEcharts.js для инициализации модуля echarts, а затем напишите следующий код:
@/src/utils/initEcharts.js
// eslint-disable-next-line
const echarts = equire([
'line',
'tooltip'
])
export default echarts
скопировать код
Введение вышеуказанного файла initEcharts.js вместо необходимости использования echarts.
import echarts from '@/src/utils/initEcharts'
скопировать код
Таким образом, окончательный упакованный файл содержит только базовый модуль графиков и два модуля графиков линии/столбика.
С разделением кода
вышеуказанный файлequire
заменитьequireAsync
,В настоящее времяequireAsync()
Возврат - это функция, и после выполнения функции она вернетpromise
объект
// eslint-disable-next-line
const initEcharts = equireAsync([
'line',
'tooltip'
])
export default initEcharts
скопировать код
Использование в других документах:
import initEcharts from '@/src/utils/initEcharts'
initEcharts()
.then(echarts => {
// do somthing with echarts
})
скопировать код
Полный вариант использования может относиться ксинхронная загрузка Асинхронная загрузка
API
После введения этого плагина при компиляции babel внедряются две глобальные функции:equireа такжеequireAsync
equire(modules)
- Загрузить модуль синхронно и вернуть объект echarts
- Модули параметров представляют собой массив, и передается имя модуля, который необходимо загрузить по запросу. Конкретное имя см. в правилах преобразования.
equireAsync(modules)
- Загружать модуль асинхронно, возвращая функцию инициализации
- Модули параметров представляют собой массив, и передается имя модуля, который необходимо загрузить по запросу. Конкретное имя см. в правилах преобразования.
Правила преобразования
Все перечислено нижеchart
а такжеcomponent
Модули плагина будут преобразованы в соответствующие пути в соответствии с именами этих модулей.Также вы можете напрямую указать путь для импорта модулей, напримерzrender/lib/vml/vml
, на этот раз будет напрямую использоваться путь для импорта модуля
// @chart
'bar',
'boxplot',
'candlestick',
'chord',
'custom',
'effectScatter',
'funnel',
'gauge',
'graph',
'heatmap',
'line',
'lines',
'map',
'parallel',
'pictorialBar',
'pie',
'radar',
'sankey',
'scatter',
'themeRiver',
'treemap'
// @component
'angleAxis',
'axis',
'axisPointer',
'brush',
'calendar',
'dataZoom',
'dataZoomInside',
'dataZoomSelect',
'geo',
'graphic',
'grid',
'gridSimple',
'legend',
'markArea',
'markLine',
'markPoint',
'parallel',
'parallelAxis',
'polar',
'radar',
'radiusAxis',
'single',
'singleAxis',
'timeline',
'title',
'toolbox',
'tooltip',
'visualMap',
'visualMapContinuous',
'visualMapPiecewise'
скопировать код