resizeMixins.js 649 B

1234567891011121314151617181920212223242526
  1. // 混入代码 resize-mixins.js
  2. import { debounce } from '@/utils/index';
  3. const resizeChartMethod = '$__resizeChartMethod';
  4. export default {
  5. data() {
  6. // 在组件内部将图表init的引用映射到chart属性上
  7. return {
  8. chart: null,
  9. };
  10. },
  11. created() {
  12. window.addEventListener('resize', this[resizeChartMethod], false);
  13. },
  14. beforeDestroy() {
  15. window.removeEventListener('reisze', this[resizeChartMethod]);
  16. },
  17. methods: {
  18. // 通过lodash的防抖函数来控制resize的频率
  19. [resizeChartMethod]: debounce(function() {
  20. if (this.chart) {
  21. this.chart.resize();
  22. }
  23. }, 100),
  24. },
  25. };