常见问题 FAQ

  1. 部分参数无效

    EasyVis 统一了一些常用图形的配置规范,文档方面,所有图形都包含,比如坐标轴,图例等。

    但部分图形不具备功能,比如饼图没有坐标轴,所以配置了坐标轴也无效,但由于是通用配置,所以 TypeScript 并不会提示错误。

  2. 图形出不来

    • DOM 模式, 配置图形前,挂载容器 宽高要能取到。
    • React 模式, 配置图形前,图形的父组件 宽高要能取到。
    • 图形会自动监听 window resize 事件,当 Resize 时,图形会自动适应。
  3. 如何引入样式 or 自定义样式

    目前默认提供了两套样式,可通过 css / scss 引入(说明:VAP项目内部已经集成了样式,无需额外操作)

    /**
    * 引入默认亮色系样式
    */ 
    @import '../node_modules/easyvis/scss/visual.scss';
    /**
    * 或者 引入默认暗色系样式
    */
    @import '../node_modules/easyvis/scss/visual-dark.scss';

    另外也可以自定义样式,相关的变量可以在 node_modules/easyvis/scss/_variable.scs 中查询

    /**
    * 使用一套新的颜色,定义一套暗色皮肤 
    */ 
    @use '../node_modules/easyvis/scss/index' with(
    $darkMode :true,
    $colors:(
        #FF6338, #FA914B, #FA8EF1,
        #A96BFF, #2F84FA, #1BE02F,
        #F2C17C, #65AABF, #7D8AE8,
        #69B5E0
    ),
    );
    /**
    * Custom : More ,可以附加自定义样式,或覆盖原样式,需要使用SVG的样式规范
    */
  4. 设置全局变量

    一般情况不需要改动,默认已经内置,可以通过 setDefault 方法对一项或多项进行改动。

    目前支持全局自定义的参数如下,更多参数正在支持中

    import { GlobalUtil } from 'easyvis/_utils';
    
    GlobalUtil.setDefault({     // 全局通用设置
    prefix: '',             // 自定义前辍
    className: '',          // 自定义附加 class 类名称 
    duration: 666,          // 图形切换数据时的过渡时间
    maxcount: 10,           // 默认最大显示的数量
    grid: {                 // 默认显示区域
        top: 12,
        left: 12,
        right: 12,
        bottom: 12,
    },            
    tip: {                  // 默认提示的时间延时
        delay: 100,
        durationShow: 350,
        durationHide: 200
    },
    })
  5. 可以加入背景吗

    如果容器在初始化时就已经包含了子元素,子元素会自动转换成背景

    普通模式

    // HTML 代码
    <div id="app">
    <div style="margin:20px auto;background-image:url(xxx)">  
        <h5 style="text-align:right;">标题</h5>
    </div> 
    </div>
    // JavaScript 代码
    import { Pie } from 'easyvis';
    // div#app 下的子元素会变成饼图背景
    var graph = new Pie('#app', {
    labelField:  "name",
    valueField:  "count",
    valueLabel:  "数量"
    });

    React 模式

    import { Pie } from 'easyvis/react';
    // Render 方法
    remder = () => <Pie
    labelField="name"
    valueField="count"
    valueLabel="数量"
    data={data} >
    <div style={{margin:'20px auto';backgroundImage:'url(xxx)'}}>  
        <h5 style={{textAlign:'right'}}>标题</h5>
    </div> 
    </Pie>
  6. 是否支持 Vue

    正在计划支持中
  7. 性能如何?

    一、 从浏览器原理层来说 基于 Dom 的性能肯定是不及 基于 Canvas 的相关框架,不过本工具内部作了各种优化,大幅度的降低渲染计算量。

    二、 目前本工具都是渲染的简单图形,数据量最多不过几百,对于目前浏览器性能来讲几乎可以忽略不计。

    三、 对于数据量极大(一万以上),不适用,可以先处理后再使用本工具