O gráfico echarts no VUE3 é transformado em um echarts responsivo para obter um layout responsivo

  • gráfico único
    
         
         
          
          
    1. //Obtém o nodo dom
    2. var myChart = echarts. init ( document . getElementById ( 'principal' ));
    3. // renderiza dom
    4. myChart. definirOpção ({...})
    5. // responsivo
    6. janela . onresize = função ( ) {
    7. myChart. redimensionar ();
    8. }

    Nota: Este método só pode ser usado para um gráfico. Se houver vários gráficos em uma página, ele só terá efeito para o último gráfico. Quando o usamos em vue, geralmente temos vários gráficos. Embora dividamos gráficos diferentes em vários componentes, ele ainda funciona apenas para um gráfico. Portanto, a maneira mais eficaz é montá-lo globalmente.

  • Múltiplos gráficos (abordagem genérica)

        Montar globalmente:


   
   
    
    
  1. importar { createApp } de 'vue'
  2. importar aplicativo de './App.vue'
  3. importar roteador de './router/index'
  4. //Introduzir elemento-ui
  5. importar ElementPlus de 'element-plus'
  6. importar 'elemento-plus/dist/index.css'
  7. app const = createApp ( Aplicativo )
  8. aplicativo. usar ( ElementPlus )
  9. aplicativo. usar (roteador)
  10. aplicativo. montar ( '#aplicativo' )
  11. //Método - montagem global
  12. aplicativo. . _ globalProperties . $echartsResize = função ( ref:qualquer ){
  13. janela . addEventListener ( 'redimensionar' , função ( ) {
  14. ref. redimensionar ()
  15. })
  16. }
  17. //Propriedades--montagem global
  18. aplicativo. . _ globalProperties . $axios = Axios ;
  19. app.config.globalProperties . $Test = " Estou no global " ;

No uso do componente:

        Na instância do componente, você precisa introduzir getCurrentInstance de vue e, em seguida, obter o proxy por meio de getCurrentInstance e, em seguida, obter a instância montada globalmente para uso.


   
   
    
    
  1. <configuração do script>
  2. importar {onMounted} de 'vue' ;
  3. importar * como echarts de 'echarts' ;
  4. //Introduzir getCurrentInstance
  5. importar { getCurrentInstance } de 'vue'
  6. const { proxy } = getCurrentInstance ();
  7. const echartInit = ( dados ) => {
  8. // Com base no dom preparado, inicializa a instância echarts
  9. var myChart = echarts. init ( document . getElementById ( 'principal' ));
  10. // desenha o gráfico
  11. myChart. setOption ({...});
  12. // Reativo -- use
  13. proxy.$echartsResize(myChart)
  14. }
  15. onMounted ( assíncrono () => {
  16. castInit ()
  17. })
  18. </script>

  • gráfico único
    
         
         
        
        
    1. //Obtém o nodo dom
    2. var myChart = echarts. init ( document . getElementById ( 'principal' ));
    3. // renderiza dom
    4. myChart. definirOpção ({...})
    5. // responsivo
    6. janela . onresize = função ( ) {
    7. myChart. redimensionar ();
    8. }

    Nota: Este método só pode ser usado para um gráfico. Se houver vários gráficos em uma página, ele só terá efeito para o último gráfico. Quando o usamos em vue, geralmente temos vários gráficos. Embora dividamos gráficos diferentes em vários componentes, ele ainda funciona apenas para um gráfico. Portanto, a maneira mais eficaz é montá-lo globalmente.

  • Múltiplos gráficos (abordagem genérica)

        Montar globalmente:


   
   
  
  
  1. importar { createApp } de 'vue'
  2. importar aplicativo de './App.vue'
  3. importar roteador de './router/index'
  4. //Introduzir elemento-ui
  5. importar ElementPlus de 'element-plus'
  6. importar 'elemento-plus/dist/index.css'
  7. app const = createApp ( Aplicativo )
  8. aplicativo. usar ( ElementPlus )
  9. aplicativo. usar (roteador)
  10. aplicativo. montar ( '#aplicativo' )
  11. //Método - montagem global
  12. aplicativo. . _ globalProperties . $echartsResize = função ( ref:qualquer ){
  13. janela . addEventListener ( 'redimensionar' , função ( ) {
  14. ref. redimensionar ()
  15. })
  16. }
  17. //Propriedades--montagem global
  18. aplicativo. . _ globalProperties . $axios = Axios ;
  19. app.config.globalProperties . $Test = " Estou no global " ;

No uso do componente:

        Na instância do componente, você precisa introduzir getCurrentInstance de vue e, em seguida, obter o proxy por meio de getCurrentInstance e, em seguida, obter a instância montada globalmente para uso.


   
   
  
  
  1. <configuração do script>
  2. importar {onMounted} de 'vue' ;
  3. importar * como echarts de 'echarts' ;
  4. //Introduzir getCurrentInstance
  5. importar { getCurrentInstance } de 'vue'
  6. const { proxy } = getCurrentInstance ();
  7. const echartInit = ( dados ) => {
  8. // Com base no dom preparado, inicializa a instância echarts
  9. var myChart = echarts. init ( document . getElementById ( 'principal' ));
  10. // desenha o gráfico
  11. myChart. setOption ({...});
  12. // Reativo -- use
  13. proxy.$echartsResize(myChart)
  14. }
  15. onMounted ( assíncrono () => {
  16. castInit ()
  17. })
  18. </script>

Acho que você gosta

Origin blog.csdn.net/weixin_64310738/article/details/129034399
Recomendado
Clasificación