Vue中引入TradingView制作K线图

摘要:
图形库希望仅通过onHistoryCallback接收一次所有请求历史记录。

**前言: 本文使用的是1.10版本 , 可通过TradingView.version()查看当前版本.
附上开发文档地址:https://zlq4863947.gitbooks.i...**

一、修改datafeed.js为export导出,并在vue文件引入TradingView内部代码charting_library.min.js和datafeed.js.

前端开发者常用的 9 个 JavaScript 图表库

datafeed.js

// 导出核心函数,提供vue组件调用初始化k线图
export default {
    UDFCompatibleDatafeed: Datafeeds.UDFCompatibleDatafeed,
}

vue 组件

// 这是我的路径,请根据自己的路径去配置
import "../../../static/charting_library/charting_library.min.js";
import Datafeeds from "../../../static/charting_library/datafeed/udf/datafeed.js";

二、初始化k线图函数

data(){
    return{
         widget: null,
    }
}
,
methods:{
    createWidget() {
       var _this = this;
      this.$nextTick(function() {
        let widget = new TradingView.widget({
          symbol: 'BTC-USDT',//商品名称
          interval: "15",//默认显示时间分辨率15分钟
          container_id: "tv_chart_container",//k线div容器id
          //调用datafeed初始化函数
          datafeed: new Datafeeds.UDFCompatibleDatafeed(
            'https://demo_feed.tradingview.com',//后台地址
            10000, //轮询时间(毫秒)
          ),
          library_path: "/static/charting_library/", //static文件夹的路径
          locale: 'zh', //语言
          fullscreen: true, //显示图表是否占用窗口中所有可用的空间
          //禁用图表某个功能,参考:https://tradingview.gitee.io/featuresets/
          disabled_features: [
            "use_localstorage_for_settings",
            "left_toolbar", //隐藏左边工具栏
            "header_saveload",
            "header_symbol_search", //隐藏搜索框
            "header_interval_dialog_button", //隐藏设置周期按钮
            "timeframes_toolbar", //隐藏底部刻度栏
            "header_chart_type", //隐藏k线样式选择
            // "header_indicators", //隐藏指标按钮
            "header_fullscreen_button",
            "header_undo_redo", //隐藏撤销重做按钮
            "header_compare", //隐藏比较/增加商品按钮
            "header_screenshot", //隐藏截屏按钮
            "header_resolutions",
            "edit_buttons_in_legend",
            "pane_context_menu",
            "legend_context_menu",
            "adaptive_logo",
            "display_market_status",
            "volume_force_overlay"
          ],
          //启用图表某个功能
          enabled_features: ["study_templates", "move_logo_to_main_pane"],
          charts_storage_url: "https://saveload.tradingview.com",
          charts_storage_api_version: "1.1",//版本
          timezone: "Asia/Shanghai",//时区
          user_id: "public_user_id",
        });
        _this.widget = widget; //保存图表对象
      });
    },
    // 更新图表
    updateWidget(item) {
      this.removeWidget();
      this.createWidget();
    },
    //销毁图表
    removeWidget() {
      if (this.widget) {
        this.widget = null;
      }
    },
    destroyed() {
        this.removeWidget();
    }
},
mounted(){
    this.$nextTick(()=>{
        this.updateWidget();
    })
    
}

三、Datafeed.js简单介绍

普遍主要通过修改这几个函数实现预期效果

  • Datafeeds.UDFCompatibleDatafeed.prototype.resolveSymbol - 配置商品信息结构 (文档:https://zlq4863947.gitbooks.i...
  • Datafeeds.UDFCompatibleDatafeed.prototype.getBars - 通过日期范围获取历史K线数据。图表库希望通过onHistoryCallback仅一次调用,接收所有的请求历史。而不是被多次调用。
  • Datafeeds.DataPulseUpdater - 更新后台返回k线最新的数据

emmm: 网上比较少关于TradingView引入Vue的文章,小弟不才,粗略的分享一下我的实现方法.

原文地址:https://segmentfault.com/a/1190000016879057

免责声明:文章转载自《Vue中引入TradingView制作K线图》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇vue-element-admin实战 | 第一篇: 移除mock接入后台,搭建微服务和前后端分离的管理平台VS2019 Qt5.15.2 开发环境搭建下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

vue中的watch监听数据变化以及watch中各属性详解

1、watch使用的几种方法(1)通过watch监听data数据的变化,数据发生变化时,就会打印当前的值 watch: { data(val, newval) { console.log(val) console.log(newval) } } (2)通过watch监听docData数据的变化...

vue元素显示隐藏 vif 和 vshow 指令

v-if 和 v-show在vue中,v-if 和 v-show 会根据接收 true/false 信息使得页面上元素达到显示或隐藏的效果。 语法: <标签 v-if="true/false"></标签> <标签 v-show="true/false"></标签> <!--true:显示 false:隐...

thinkphp封装方法添加跨域请求

function wang_json($data){ //返回JSON数据格式到客户端,包含状态信息 header(' Content-Type:application/json; charset=utf-8 '); header('Access-Control-Allow-Origin: *...

vue开发环境搭建

大致分这么几个骤: 1. 安装node 、npm 、nvm 2. 安装git 、vscode 以及vscode上的一些插件 3. 安装vue-cli 以下详细来说每个步骤 1. 安装node 、 npm 、nvm    在官网下载的 node 安装包,在mac上运行会自动安装在全局目录,使用过程中经常会遇到一些权限问题,所以推荐按该网站 https://...

在VC中定制Doxygen注释宏

感谢曾发明同学 1参照vc自带的sample.dsm生成文档yymacro.dsm; 2编辑yymacro.dsm内容,添加如下三个宏: A) ‘生成Doxygen样式的函数注释 YYAddDoxygenFunctionDescription() 对应注释为: /** * Func1 declaration * @param int a input1 a...

第四节:Webpack本地服务器搭建、剖析devServer的HRM热替换和其它配置、resolve模块解析、区分开发/生产环境方案实战

一. webpack本地服务器搭建 1. 为什么要搭建本地服务器?  我们之前通过【npm run build】,编译相关的代码; 然后需要在浏览器中运行,每次修改修改代码,都需要重新编译运行,很麻烦。我们希望可以做到,当文件发生变化时,可以自动的完成 编译 和 展示 。 2. watch mode模式 (1). 简介   在该模式下,webpack依赖图...