1. 在Blazor中使用Chart.js

  1. 首先,从Chart.js官方网站下载Chart.js库文件。

    推荐下载这个构建好的版本https://cdnjs.com/libraries/Chart.js,最新版是v4.2.1

  2. 在Blazor项目中把刚刚下载好的Chart.js放到wwwroot目录下。

  3. 将下载的Chart.js文件复制到该文件夹中。

  4. 在Blazor项目中的Pages文件夹下_Host.cshtml文件中添加以下代码:

    <script src="_framework/blazor.webassembly.js"></script>
    <-- 添加下面这句 -->
    <script src="~/Chart.js"></script>
  5. 在Blazor组件中使用Chart.js,需要在组件中添加以下代码:

    注意!这个canvas标签的id非常重要!后面调用js的时候要用到它!

    在组件顶部添加一行代码,注入JSRuntime

     @page "/"
    @inject IJSRuntime JS <PageTitle>BlazorWithChartJS</PageTitle>
    <p>
    <h2>
    在Blazor中使用
    <code><strong>JavaScript</strong></code>
    调用
    <code><strong>Chart.JS</strong></code>
    绘制曲线图
    </h2>
    </p> <div class="chart">
    <canvas id="AnimationsChart"></canvas>
    </div>
  6. Index组件的@code代码块中,添加以下C#代码:

        protected override async Task OnAfterRenderAsync(bool firstRender)
    {
    if (firstRender)
    {
    var jsmodule = $"./Pages/Index.razor.js";
    var jSObject = await JS.InvokeAsync<IJSObjectReference>("import", jsmodule);
    await jSObject.InvokeVoidAsync("animationsChart");
    }
    await base.OnAfterRenderAsync(firstRender);
    }
  7. 接下来我们在组件所在目录下创建一个当前组件隔离的js文件Index.razor.js,在组件的代码块中,添加以下JavaScript代码:

    export function animationsChart() {
    const ctx = document.getElementById('AnimationsChart'); const data = {
    labels: ['January', 'February', 'March', 'April', 'May', 'June', 'July'],
    datasets: [{
    label: 'Looping tension',
    data: [65, 59, 80, 81, 26, 55, 40],
    fill: false,
    borderColor: 'rgb(75, 192, 192)',
    }]
    }; const config = {
    type: 'line',
    data: data,
    options: {
    animations: {
    tension: {
    duration: 1000,
    easing: 'linear',
    from: 1,
    to: 0,
    loop: true
    }
    },
    scales: {
    y: {
    min: 0,
    max: 100
    }
    }
    }
    }; new Chart(ctx, config);
    }

    这将创建一个简单的折线图,您可以根据需要更改类型、数据和选项。

  8. 运行Blazor应用程序,您应该能够看到您的Chart.js图表!

更多图表类型等信息,请参阅Chart.js官方文档。

上面的相关代码我放在GitHub了,有需要的可以查看:https://github.com/azlis/BlazorChartJS

在Blazor中使用Chart.js的更多相关文章

  1. Ionic中使用Chart.js进行图表展示以及在iOS/Android中的性能差异

    Angular Chart 简介 在之前的文章中介绍了使用 Ionic 开发跨平台(iOS & Android)应用中遇到的一些问题的解决方案. 在更新0.1.3版本的过程中遇到了需要使用图表 ...

  2. vue中使用chart.js

    1,安装chart.js和vue-chart.js npm install chart.js --save npm install vue-chart.js --save 2,独立文件,方便修改 封装 ...

  3. Blazor和Vue对比学习(知识点杂锦3.04):Blazor中C#和JS互操作(超长文)

    C#和JS互操作的基本语法是比较简单的,但小知识点特别多,同时,受应用加载顺序.组件生命周期以及参数类型的影响,会有比较多坑,需要耐心的学习.在C#中调用JS的场景会比较多,特别是在WASM模式下,由 ...

  4. angulajs中引用chart.js做报表,修改线条样式

    目前还有个问题,在手机上看,当折线y轴值超过1000,会有点问题 1.下载chart js,可以用bower 命令下载 http://www.chartjs.org/docs/#line-chart- ...

  5. chart.js使用常见问题

    Chart.js是一个简单.面向对象.为设计者和开发者准备的图表绘制工具库. 在使用过程中新手可能会遇到很多问题导致图标无法显示.下面我们来看一下在使用过程中可能会遇到的问题. 刚开始用chart.j ...

  6. [转]Chart.js入门教程

    Chart.js是一个简单.面向对象.为设计者和开发者准备的图表绘制工具库. 相信大部分人都一样,看到一大筐用文本或者表格形式呈现的数据就头疼.因为这种呈现方式也太无聊了吧...而且这对于我们处理原始 ...

  7. Chart.js入门教程

    Chart.js是一个简单.面向对象.为设计者和开发者准备的图表绘制工具库. 相信大部分人都一样,看到一大筐用文本或者表格形式呈现的数据就头疼.因为这种呈现方式也太无聊了吧...而且这对于我们处理原始 ...

  8. Chart.js docs

    原文链接:http://www.bootcss.com/p/chart.js/docs/ 引入Chart.js文件 首先我们需要在页面中引入Chart.js文件.此工具库在全局命名空间中定义了Char ...

  9. Chart.js中文文档-雷达图

    雷达图或蛛网图(Radar chart) 简介 A radar chart is a way of showing multiple data points and the variation bet ...

  10. chart.js在html中画曲线图

    http://www.bootcss.com/p/chart.js/docs/ http://www.chartjs.org/docs/   中有详细讲解 一.简介 Chart.js是一个基于HTML ...

随机推荐

  1. PDF转置

    import pdfplumber #全是None with pdfplumber.open(r"C:\Users\yjiang3\Desktop\Inv.pdf") as pdf ...

  2. MySql 错误:建表时出错1067 - Invalid default value for 'id'

    问题描述: 建表时报错无效的默认值: CREATE TABLE `product`( `id` INT(10) NOT NULL PRIMARY KEY AUTO_INCREMENT COMMENT ...

  3. sar与ksar使用显示监控数据

    一.Ksar: 1)下载ksar地址:https://github.com/vlsi/ksar/releases/tag/v5.2.4-snapshot.10-gf068072 2)启动:java - ...

  4. Day02 差点水掉 欸呀呀

    Java狂神6.17星期四 知识行 冯诺依曼+图灵 软件+硬件 .......... 快捷键 ctrl+a 全选 ctrl+x 剪切 alt+F4 关闭窗口 win+r 运行 +cmd命令行 win+ ...

  5. 浙里办微信小程序总结

    浙里办微信小程序单点登录流程 1.获取浙里办跳转地址中ticket或者微信小程序中的ticketId let ticket = getQueryString("ticket", w ...

  6. 十大经典排序之快速排序(C++实现)

    快速排序 通过一趟排序将待排序列分割成两部分,其中一部分记录的关键字均比另一部分记录的关键字小.之后分别对这两部分记录继续进行排序,以达到整个序列有序的目的. 思路: (1)选择基准:从数列中挑出一个 ...

  7. Lenovo Vantage 完全卸载

    Lenovo Vantage 完全卸载 我的T480,最近因为在休眠状态下断电导致不开机,按开机键所有灯闪烁.翻阅百度发现居然是通病,自从 type-c 供电方案以来就有,无奈只有被奸商坑了350,只 ...

  8. pom.xml配置资源过滤

    <build> <!--设置资源过滤--> <resources> <resource> <directory>src/main/java& ...

  9. AD使用积累 - AD原理图界面选中所有器件但不选中电气连接线

    1.在随意一个器件上右键,选择查找相似对象. 2.在弹出的界面选择如下两项: 3.点击确定,会高亮所有元器件,这时再进行框选就可以只选中器件.

  10. Adaboost分类器

    Adaboost分类器 2019-08-31 非集成的机器学习算法就像古代皇帝一样,一个人说了算:集成学习算法类似于现在的国会,需要听取在会所有人的意见. Adaboost是一个集成学习算法,下面将会 ...