作为一名韭菜,一直都有使用表格来管理投资理财的习惯
上班时间盯盘时(希望老板不会发现这篇文章),通常都会先在手机/电脑上打开券商App,输入对应的股票代码,获取最新的行情数据,然后再对比表格上的数据指标,判断是买入还是卖出。
这样子炒股,简直比我上班敲代码ctrl c + v还累,不过自己写一个足够好用的盯盘程序一样要花不少的心思,所以就一直没动。
直到上手了维格表,对于看盘又有了新的思路——通过维格表小程序的拓展功能,不需要切换设备和页面,在维格表中就可以轻松查看股市行情并管理投资标的
酷炫之中不失方便,而 vika 小程序的开发也十分简单,只需要 20 行代码即可实现。
先决条件
开发者技能
在创建你的第一个小组件之前,请确保你已经掌握了如下技能:
熟悉维格表的基本概念,特别是记录、字段、视图
- 熟悉 JavaScript 语言和 React 框架。TypeScript 是加分项,可以帮助你开发更稳定的小组件
- 如果你还没有接触过 JavaScript,但对 Web 开发有浓厚的兴趣,推荐你阅读 MDN JavaScript 教程 和 React 教程
小组件 SDK 中使用的核心能力包括 React Hooks 和 React 函数式组件
了解 npm 或者 yarn 包管理器
熟悉最基础的命令行语句,比如 cd 进入一个目录,最基础的就够用了。
开发环境要求
接下来我会给大家演示一下,这个小程序如何通过20行代码实现股票k线图预览的功能,让你在维格表上就能看行情~
在文章的末尾,我也附上了Github源码地址,有兴趣的小伙伴可以Star一下⭐️~
前期配置
首先,我们需要根据《快速上手开发 | 维格表开发者中心》的提示,创建一个新的小程序模板,我的项目名是“candlestick-chart”
注:如果你是首次开发,还需要先安装 NodeJS,在终端逐行执行以下指令即可
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash
nvm install node
配置完成后,你可以在维格表左侧可以预览小程序
梳理逻辑
首先,我们需要明确目的和业务逻辑:点击单元格,识别这条记录的股票代码,根据配置好的API接口请求数据
而我们要做的是,实现这个业务逻辑所需要的代码,最终将界面上的“🚀Hello World”替换成“k线图”
怎么做呢?
第一步,在src目录下新建一个“candlestick_chart.tsx”的组件(文件),先搭建html结构
然后将这个程序导入到“index.tsx”入口文件中,并替换掉原来的“🚀hello world”
import {CandlestickChart} from './candlestick_chart'
效果如图所示
现在,你已经搭好框架啦,接下来只需要完善少许逻辑,就能跑起来了
先回到“candlestick_chart.tsx”,我们需要在这个文件里完善k线图预览的逻辑部分
首先,我们需要用到两个hooks,可以先在开头导入它们
import {useActiveCell, useRecord} from '@vikadata/widget-sdk';
来看看官方文档是如何介绍他们的
简而言之,当我们点击一个单元格时,会激活并且返回此单元格的信息,这时我们就可以获取他的recordId,并且作为useRecord的参数
而useRecord能够加载对应recordId的记录信息,最后我们再调用getCellValueString方法来获取该行的股票代码信息
实现代码如下(我的股票代码列ID为:fldFtjhc7O2qS,你也可以在API面板查看自己的列ID)
const activeCell = useActiveCell();
const activeRecord = useRecord(activeCell?.recordId)
const stockCode = activeRecord?.getCellValueString('fldFtjhc7O2qS')
提示:维格表中的股票代码,需要在前面加上交易所的代号,比如「贵州茅台」的代码应该是sh600519,目前仅支持A股。
接下来,我们需要用新浪提供的API来获取各个时间段行情图(把末尾的“sh601006”替换成stockCode变量)
查看日K线图:image.sinajs.cn/newchart/da…
分时线的查询:image.sinajs.cn/newchart/mi…
日K线查询:image.sinajs.cn/newchart/da…
// 获取分时k线图
const minLineUrl = `http://image.sinajs.cn/newchart/min/n/${stockCode}.gif`
// 获取日k线图
const dailyLineUrl = `http://image.sinajs.cn/newchart/daily/n/${stockCode}.gi`
// 获取周k线图
const weeklyLineUrl = `http://image.sinajs.cn/newchart/weekly/n/${stockCode}.gif`
最后一步,在html结构中的<img>标签里补充对应的src属性,就大功告成啦~
现在,就算不懂编程,相信也学会了如何构建一个股票k线图预览的小程序,直接开始ctrl c + v就行。
对代码感兴趣的大佬,我已经将源码上传至Github:github.com/vika-widget…(欢迎Star⭐️)
如果有疑问,可以结合源码一起去完善你的代码~
备注:本文中的小程序示例仅用于演示,k线图接口暂时仅支持A股,你也可以用其他接口代替