Vue项目中使用d3.js案例详解

这次给大家带来Vue项目中使用d3.js案例详解,Vue项目中使用d3.js的注意事项有哪些,下面就是实战案例,一起来看一下。

之前写一个 Demo里面 有些东西要使用d3实现一些效果 但是在很多论坛找资源都找不到可以在Vue里面使用D3.js的方法,npm 上面的D3相对来说 可以说是很不人性化了 完全没有说 在webpack上怎么使用D3.js

最后折腾很久 看到某位外国大佬 看他的案例 成功的实现了在Vue项目里面实现D3的使用

首先安装

npm install d3 --save-dev

登录后复制

以防万一,然后看package.json

Vue项目中使用d3.js案例详解

安装完成

在我们开始之前,让我们渲染一个Vue组件,它使用常规的D3 DOM操作呈现一个简单的折线图:

import * as d3 from 'd3';const data = [99, 71, 78, 25, 36, 92];export default { name: 'non-vue-line-chart', template: '

', mounted() { const svg = d3.select(this.$el) .append('svg') .attr('width', 500) .attr('height', 270) .append('g') .attr('transform', 'translate(0, 10)'); const x = d3.scaleLinear().range([0, 430]); const y = d3.scaleLinear().range([210, 0]); d3.axisLeft().scale(x); d3.axisTop().scale(y); x.domain(d3.extent(data, (d, i) => i)); y.domain([0, d3.max(data, d => d)]); const createPath = d3.line() .x((d, i) => x(i)) .y(d => y(d)); svg.append('path').attr('d', createPath(data)); },};svg margin: 25px; path fill: none stroke: #76BF8A stroke-width: 3px

登录后复制

代码简单易懂,但这仅仅是一个基本的例子。因为我们没有使用模板,所以需要更多操作和计算的更复杂的可视化会掩盖组件的设计和逻辑。上述方法的另一个警告是,我们不能使用scopedCSS 的属性,因为D3会动态地向DOM添加元素。

Vue项目中使用d3.js案例详解

可以使用比较奇怪,但是代码比较优雅的方式去实现

         import * as d3 from 'd3';export default { name: 'vue-line-chart', data() {  return {   data: [99, 71, 78, 25, 36, 92],   line: '',  }; }, mounted() {  this.calculatePath(); }, methods: {  getScales() {   const x = d3.scaleTime().range([0, 430]);   const y = d3.scaleLinear().range([210, 0]);   d3.axisLeft().scale(x);   d3.axisBottom().scale(y);   x.domain(d3.extent(this.data, (d, i) => i));   y.domain([0, d3.max(this.data, d => d)]);   return { x, y };  },  calculatePath() {   const scale = this.getScales();   const path = d3.line()    .x((d, i) => scale.x(i))    .y(d => scale.y(d));   this.line = path(this.data);  }, },};svg margin: 25px;path fill: none stroke: #76BF8A stroke-width: 3px

登录后复制

非常酷,即使它没有公开任何属性并且数据是硬编码的,它很好地将视图从逻辑中分离出来,并且使用Vue钩子,方法和data对象,现象和上图一样的。

相信看了本文案例你已经掌握了方法,更多精彩请关注【创想鸟】其它相关文章!

推荐阅读:

nodejs日志模块winston使用方法总结

Vue中watch使用方法总结

以上就是Vue项目中使用d3.js案例详解的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2761794.html

(0)
上一篇 2025年3月8日 09:39:31
下一篇 2025年3月6日 03:36:24

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 调用缓存实现JS方法步骤详解

    这次给大家带来调用缓存实现JS方法步骤详解,调用缓存实现JS方法的注意事项有哪些,下面就是实战案例,一起来看一下。 1.什么是方法重载 方法重载是指在一个类中定义多个同名的方法,但要求每个方法具有不同的参数的类型或参数的个数。简而言之就是:…

    编程技术 2025年3月8日
    200
  • JS实现缓冲运动作用详解

    这次给大家带来JS实现缓冲运动作用详解,JS实现缓冲运动的注意事项有哪些,下面就是实战案例,一起来看一下。 缓冲需要用到数值取整,向上取整:Math.ceil()  向下取整Math.floor() 移动的速度慢慢减慢的效果,移动速度=(终…

    编程技术 2025年3月8日
    200
  • Vue波纹按钮组件使用详解

    这次给大家带来Vue波纹按钮组件使用详解,Vue波纹按钮组件使用的注意事项有哪些,下面就是实战案例,一起来看一下。 先说一下用法: 默认按钮默认按钮定义速度和初始的波浪透明度 登录后复制 原理: 这里用的是canvas + requestA…

    编程技术 2025年3月8日
    200
  • 操作JS中DOM节点有哪些方法

    这次给大家带来操作JS中DOM节点有哪些方法,操作JS中DOM节点的注意事项有哪些,下面就是实战案例,一起来看一下。 DOM操作在JS中可以说是非常常见了吧,很多网页的小功能的实现,比如一些元素的增删操作等都可以用JS来实现。那么在DOM中…

    2025年3月8日
    200
  • JS实现透明度渐变功能

    这次给大家带来JS实现透明度渐变功能,JS实现透明度渐变功能的注意事项有哪些,下面就是实战案例,一起来看一下。 JS透明度变化效果 body{ margin: 0px; padding: 0px; } .redb{ width:200px;…

    编程技术 2025年3月8日
    200
  • JS做出折叠展开动画(附代码)

    这次给大家带来JS做出折叠展开动画(附代码),JS做出折叠展开动画(附代码)的注意事项有哪些,下面就是实战案例,一起来看一下。 JS折叠展开动画 body{ margin: 0px; padding: 0px; } .red{ backgr…

    编程技术 2025年3月8日
    200
  • Vue实现PopupWindow组件使用步骤解析

    这次给大家带来Vue实现PopupWindow组件使用步骤解析,Vue实现PopupWindow组件使用的注意事项有哪些,下面就是实战案例,一起来看一下。 这段时间一直在学习前端技术来完成自己的小项目。在js方面就使用了Vue框架。由于在项…

    2025年3月8日
    200
  • vue弹窗组件使用步骤详解

    这次给大家带来vue弹窗组件使用步骤详解,vue弹窗组件使用的注意事项有哪些,下面就是实战案例,一起来看一下。 ys-vue-modal-component p,h4{ margin:0; } .modal{ width: 480px; b…

    编程技术 2025年3月8日
    200
  • Vue组件使用案例详解

    这次给大家带来Vue组件使用案例详解,Vue组件使用的注意事项有哪些,下面就是实战案例,一起来看一下。 Vue实例 项目启动过程 看一下现在我们的项目,想想整个项目的启动过程是什么(以直接打开index.html的方法访问为例来说明)? 你…

    编程技术 2025年3月8日
    200
  • vue弹窗消息组件使用步骤详解

    这次给大家带来vue弹窗消息组件使用步骤详解,vue弹窗消息组件使用的注意事项有哪些,下面就是实战案例,一起来看一下。 本来打算写一个那种提示完了自动消失的弹窗的,但是没有想好淡入淡出的效果。所以暂时算是半成品。 练习代码如下: ys-al…

    编程技术 2025年3月8日
    200

发表回复

登录后才能评论