FQuant 前端开发指南
1. 技术栈概述
FQuantWeb2 是一个基于 Nuxt.js (Vue.js 框架) 的前端应用,专注于市场数据的可视化展示。
- UI 框架: Quasar UI,提供了丰富的 Vue 组件(如
q-page,q-tabs,q-table等)。 - 图表库: ECharts,通过 vue-echarts 插件集成到 Vue 中。
- 网络请求: Axios,封装在
utils/http.js中。 - 状态管理: Pinia,定义在
composables/store.ts中。
2. 目录结构
pages/: 存放所有页面文件。文件名即路由名(例如pages/after/industry.vue对应路由/after/industry)。components/: 存放可复用的 Vue 组件和布局组件。utils/: 存放工具类函数,如网络请求封装。public/: 存放静态资源。
3. 开发工作流
启动开发服务器:
bashyarn install yarn dev开发服务器默认运行在
http://localhost:3000。创建新页面: 在
pages/目录下创建.vue文件。数据对接:
- 无需配置代理或 Mock: 前端直接从测试服务器(如
https://stock.1dian.site/h5/data/)获取后端生成的 JSON 文件。 - 调用方式: 在组件的
mounted钩子或setup中,使用http.get获取绝对路径的 JSON 数据。
- 无需配置代理或 Mock: 前端直接从测试服务器(如
渲染图表:
- 后端会生成完整的 ECharts
option配置对象。 - 前端通过
v-chart组件渲染,并将获取到的 JSON 直接传递给:option属性。
- 后端会生成完整的 ECharts
4. 示例代码:数据获取与图表展示
以下是一个典型的页面组件结构示例:
vue
<template>
<q-page>
<!-- 使用 Quasar 组件布局 -->
<div class="q-pa-md">
<!-- 使用 v-chart 渲染 ECharts -->
<v-chart class="my-chart" :option="chartOption" autoresize />
</div>
</q-page>
</template>
<script lang="ts">
import http from '@/utils/http'
import VChart from 'vue-echarts'
import { defineComponent, ref } from 'vue'
export default defineComponent({
components: { VChart },
setup() {
const chartOption = ref({})
const loadData = async () => {
// 直接调用测试服务器上的 JSON 数据
const res = await http.get('https://stock.1dian.site/h5/data/market_emotion.json')
chartOption.value = res.data
}
return { chartOption, loadData }
},
mounted() {
this.loadData()
}
})
</script>
<style scoped>
.my-chart {
height: 400px;
}
</style>5. 开发建议
- 优先复用 Quasar 组件: 尽量使用 Quasar 提供的 UI 组件以保持界面风格一致。
- 关注 ECharts 性能: 对于大数据量的图表,确保在
v-chart上使用autoresize属性。 - 参考现有页面: 在开发新页面前,建议先阅读
pages/目录下已有的成熟页面代码(如industry.vue),以了解项目的数据加载和布局模式。