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. 学习JavaScript第一周

    三种输出方式,console.log.element.write.alert(): 简单数据类型:数值型.字符串型.布尔类型.undefined.null 复杂数据类型:对象 数据类型的转换:字符串转 ...

  2. PHP中获取时间的下一周下个月的方法

    PHP中获取时间的下一周,下个月等通常用于定制服务的时候使用,比如包月会员,包年等等 //通常用于定制服务的时候使用,比如包月会员,包年等等 //获取当前时间过一个月的时间,以DATETIME格式显示 ...

  3. 如何去掉Discuz论坛标题的Powered by Discuz!

    找到如下的位置 根目录/template/default/common/ 找到 header_common.htm 2 原来的代码 <title><!--{if !empty($na ...

  4. oralce 11g 数据库及客户端client等的下载安装

    下载地址:https://www.oracle.com/cn/database/technologies/microsoft-windows.html

  5. CC协议的诞生背景

    CC协议的诞生背景 在当今世界绝大部分国家的法律法规中,作品的版权一般都保留于创造者或拥有人手中,在没有特殊声明的情况下,任何人想要获取或使用该作品,都要事先取得版权所有者的授权,才可以进行合法的获取 ...

  6. 去除Bigdecimal末尾的.00

    String total = new BigDecimal("100.00").stripTrailingZeros().toPlainString();

  7. 通过k8s部署服务

    一 使用docker运行fastapi程序(python封装http接口) 一 docker commit 1 下载python3的镜像 docker pull python:3.8-slim # s ...

  8. Java-14流Stream【创建一个简易for循环工具】

    Java-14流Stream 构造简易的循环取代for IntStream类提供了一个range()方法,可以生成一个流----由int值组成的序列 import static java.util.s ...

  9. Less-7 '))闭合 和 secure_file_priv 配置写入一句话木马

    Less-7使用的文件导出select ... into outfile ....,一个文件上传. mysql安全配置里有一个配置secure_file_priv控制文件的导出导入. secure_f ...

  10. flutter系列之:创建一个内嵌的navigation

    目录 简介 搭建主Navigator 构建子路由 总结 简介 我们在flutter中可以使用Navigator.push或者Navigator.pushNamed方法来向Navigator中添加不同的 ...