首页 > 其他分享 >Highcharts 在Vue3 TS 引入

Highcharts 在Vue3 TS 引入

时间:2024-02-04 16:13:09浏览次数:22  
标签:false modules TS Highcharts Vue3 引入 import highcharts

前沿

在vue3 中引入 Highcharts

但是在你要是这么引入的话最新的版本 Highcharts

 然后就在 main.ts下引入就会报错

 

// Use the HighchartsVue plugin, register <highcharts> component
// @ts-ignore
app.use(Highcharts)

这么写虽然不会报错,但是还是无法在页面里面使用

 

然后查阅和自己研究了

提供了3种方案 可以在在Vue3 TS中可以引入 Highcharts 方案

第一种

 

在types 目录下, 新建  extends.d.ts 

输入

/// <reference types="../../node_modules/highcharts" />

解释:

如果指定了--noResolve编译选项,三斜线引用会被忽略;它们不会增加新文件,也不会改变给定文件的顺序。
/// <reference types="..." />
与 /// <reference path="..." />指令相似,这个指令是用来声明 依赖的; 一个 /// <reference types="..." />指令则声明了对某个包的依赖。

然后在 runtime 下新建一个highchart.ts 文件

写入

import Highcharts from 'highcharts';
export default Highcharts;

这样 在你使用的页面里面引入就OK了

import Highcharts from "@/runtime/highchart";
    dayChart = Highcharts.chart('dayChart', {
        accessibility: {
            enabled: false
        },
        chart: {
            zoomType: 'xy',
            type: "column",
        },
        title: {
            text: '杭州月平均温度和降雨量'
        },
        subtitle: {
            // text: '数据来源: WorldClimate.com'
        },
        xAxis: [{
            // categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
            //     'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
            // crosshair: true,
            categories: [],
            allowDecimals: false, //不允许小数
            type: "category", //自定义X坐标类别
            showEmpty: false,
        }],
        yAxis: [{ // Primary yAxis
            labels: {
                format: '{value}°C',
                style: {
                    color: Highcharts.getOptions().colors[1]
                }
            },
            title: {
                enabled: false,
                text: '温度',
                style: {
                    color: Highcharts.getOptions().colors[1]
                }
            }
        }, { // Secondary yAxis
            title: {
                enabled: false,
                text: '降雨量',
                style: {
                    color: Highcharts.getOptions().colors[0]
                }
            },
            labels: {
                format: '{value} mm',
                style: {
                    color: Highcharts.getOptions().colors[0]
                }
            },
            opposite: true
        }],
        tooltip: {
            split: true,
            shared: true
        },
        legend: {
            layout: 'vertical',
            align: 'left',
            x: 120,
            verticalAlign: 'top',
            y: 100,
            floating: true,
            backgroundColor: (Highcharts.theme && Highcharts.theme.legendBackgroundColor) || '#FFFFFF'
        },
        series: [{
            name: '降雨量',
            type: 'column',
            yAxis: 1,
            data: [49.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4],
            tooltip: {
                valueSuffix: ' mm'
            }
        }, 
        {
            name: '温度',
            type: 'spline',
            data: [7.0, 6.9, 9.5, 14.5, 18.2, 21.5, 25.2, 26.5, 23.3, 18.3, 13.9, 9.6],
            tooltip: {
                valueSuffix: '°C'
            }
        }]
    });
View Code

这样 就能在图表中引入

 

第二种:

就是注册全局的方法  app.config.globalProperties 的方法

import Highcharts from "highcharts";
import MapsModule from "highcharts/modules/map";
import StockModule from "highcharts/modules/stock";
import GanttModule from "highcharts/modules/gantt";

// In order to use Highcharts Maps we need to
// wrap Highcharts with the correct module:
MapsModule(Highcharts);
StockModule(Highcharts)
GanttModule(Highcharts);

// Use the HighchartsVue plugin, register <highcharts> component
// @ts-ignore
app.use(Highcharts)

app.config.globalProperties.highcharts = Highcharts;
window.highcharts = Highcharts;

 然后调用 window 下的 方法直接只用

console.log(proxy.isEnglish)
console.log(window.highcharts)

OK 

第3种 

就是在你的chart 文件下单独引入 这个包 也不会报错 就可以了

import Highcharts from 'highcharts/es-modules/masters/highcharts.src.js';
import 'highcharts/es-modules/masters/highcharts-more.src.js';
import 'highcharts/es-modules/masters/modules/boost.src.js';
import 'highcharts/es-modules/masters/modules/no-data-to-display.src.js';

 

推荐第三种, 因为这很好用

然后会报 黄色警告,然后在charts 下引入这个 (在你使用的图表下引入)

 accessibility: {
      enabled: false
 }

 

然后就OK了

 

标签:false,modules,TS,Highcharts,Vue3,引入,import,highcharts
From: https://www.cnblogs.com/yf-html/p/18006422

相关文章

  • ts自带的根据函数推断类型
    ts自带的根据函数推断类型❓:Parameters和ReturnType。......
  • 无涯教程-getSeconds()函数
    JavaScriptdategetSeconds()方法根据本地时间返回指定日期中的秒数。getSeconds返回的值是0到59之间的整数。getSeconds()-语法Date.getSeconds()getSeconds()-返回值根据当地时间返回指定日期中的秒数。getSeconds()-示例vardt=newDate("December25,1995......
  • 鸿蒙:揭晓 ArkTS,重塑语法,打造更健壮和可靠的代码
    hi大家好,我是DHL。就职于美团、快手、小米。公众号:ByteCode,分享有用的原创文章,涉及鸿蒙、Android、Java、Kotlin、性能优化、大厂面经我最近建了一个鸿蒙开发者交流群,群里有大佬说在gitee鸿蒙仓库中可以下载DevEcoStudio4.0。于是我下载体验了一下,运行了官方提供示例项目Sh......
  • Windows bat批处理 netsh 设置网络IP
    前言全局说明Windowsbat批处理netsh设置网络IP一、netsh设置网络IP二、Win7系统1.设置IPnetshinterfaceipsetaddressname="本地连接"source=staticaddr=192.168.1.%IP%mask=255.255.255.02>nul1>nul三、Win8、10、11系统1.设置IPnetshinterfaceip......
  • 黑科技:bitset 优化 LCS
    感觉挺有参考意义的,单独拎出来发一个。Loj6564最长公共子序列求\(a,b\)LCS长度。\(n,m\le7\times10^4\),1s,1GB。这\(O(n^2)\)还能往下卡吗?可以的,\(O(\frac{n^2}{w})\)。考虑\(dp_{i,j}\)的转移,有\(0\ledp_{i,j+1}-dp_{i,j}\le1\),即差分数组是01串,给差分......
  • k8s-资源调度(deploy,sts,ds)
    目录1.1ReplicationController和ReplicaSet1.1.1ReplicationController(RC)1.1.2ReplicaSet1.2无状态应用管理Deployment1.2.1创建一个Deployment1.2.2更新Deployment1.2.3回滚Deployment1.2.4扩容Deployment1.2.5暂停和恢复Deployment更新1.2.6更新Deploymen......
  • 自动化运维工具【SaltStack】
    SaltStack管理工具允许管理员对多个操作系统创建一个一致的管理系统,包括VMwarevSphere环境。SaltStack作用于仆从和主拓扑。SaltStack与特定的命令结合使用可以在一个或多个下属执行。主要用的语言为python二、SaltStack的配置使用自动化软件,实现在server1中显示server2中执......
  • CF1677E Tokitsukaze and Beautiful Subsegments
    (题目传送门)你就算再怎么套路我也做不出来……看到\(\maxa_k\),根据套路想到用单调栈处理出\(a_i\)左边第一个比它大的位置\(pre_i\),右边第一个比它大的位置\(nxt_i\)。枚举最大值\(a_i\)考虑它的贡献,显然若存在\(j,k\)满足\(nxt_i<j,k<pre_i\)且\(a_j\timesa_k=a......
  • requests库请求出现 SSLCertVerificationError
    python使用requests库发送https请求报错:SSLCertVerificationError:[SSL:CERTIFICATE_VERIFY_FAILED]。requests库简单介绍:Requests是一常用的http请求库,它使用python语言编写,可以很方便地发送http请求及处理响应结果。Requests允许你发送纯天然,植物饲养的HTTP/1.1请求,无需......
  • 初中英语优秀范文100篇-078Better habits, better life-更好的习惯,更好的生活
    PDF格式公众号回复关键字:SHCZFW078记忆树1Itisknowntoallthatnobodyisperfect.翻译众所周知,没有人是完美的简化记忆完美句子结构It(主语)+isknown(谓语),使用了被动语态的一般现在时,表示“这是众所周知的”toall是介词短语作状语,表示“对所有人来说”thatn......