vue3+antd+g2plot快速入门

创建项目

pnpm create vite

选择vue和JavaScript

安装依赖

pnpm i ant-design-vue
pnpm i @antv/g2plot
pnpm i vue-router

完整代码

package.json

{
  "name": "frontend",
  "private": true,
  "version": "0.0.0",
  "type": "module",
  "scripts": {
    "dev": "vite",
    "build": "vite build",
    "preview": "vite preview"
  },
  "dependencies": {
    "@antv/g2plot": "^2.4.31",
    "ant-design-vue": "^4.2.3",
    "vue": "^3.4.29",
    "vue-router": "^4.4.0"
  },
  "devDependencies": {
    "@vitejs/plugin-vue": "^5.0.5",
    "vite": "^5.3.1"
  }
}

src/main.js

import {createApp} from 'vue'

import Antd from 'ant-design-vue';
import router from './router';

import 'ant-design-vue/dist/reset.css';

import App from './App.vue'

const app = createApp(App)

app.use(Antd)
app.use(router)

app.mount('#app')

src/App.vue

<template>
  <RouterView/>
</template>

src/router/index.js

import {createWebHashHistory, createRouter} from 'vue-router'

import Layout from '../page/layout/index.vue'
import Home from '../page/home/index.vue'
import LineQuickStart from '../page/line/quick_start.vue'

const routes = [
    {
        path: '/',
        component: Layout,
        redirect: '/home',
        children: [
            {path: "/home", component: Home},
            {path: "/line/quickstart", component: LineQuickStart},
        ]
    },
]

const router = createRouter({
    history: createWebHashHistory(),
    routes,
})

export default router

src/page/layout/index.vue

<script setup>
import {ref} from 'vue';
import {useRouter} from "vue-router";

const router = useRouter()
const collapsed = ref(false);
const selectedKeys = ref(['1']);


const handleLeftMenuClick = ({item, key, keyPath}) => {
  console.log(item, key, keyPath)
  router.push(key)
}

</script>

<template>
  <a-layout style="min-height: 100vh">
    <a-layout-sider v-model:collapsed="collapsed" collapsible>
      <a-menu
          v-model:selectedKeys="selectedKeys"
          theme="dark"
          mode="inline"
          @click="handleLeftMenuClick"
      >
        <a-menu-item key="home">
          <span>首页</span>
        </a-menu-item>
        <a-sub-menu key="line">
          <template #title>
            <span>
              <span>折线图</span>
            </span>
          </template>
          <a-menu-item key="/line/quickstart">快速入门</a-menu-item>
        </a-sub-menu>
      </a-menu>
    </a-layout-sider>
    <a-layout>
      <a-layout-content style="margin: 10px 16px">
        <div :style="{ padding: '24px', background: '#fff', minHeight: '460px' }">
          <RouterView/>
        </div>
      </a-layout-content>
      <a-layout-footer style="text-align: center">
        版权所有 © 2024 Python私教 张大鹏
      </a-layout-footer>
    </a-layout>
  </a-layout>
</template>

<style scoped>
#components-layout-demo-side .logo {
  height: 32px;
  margin: 16px;
  background: rgba(255, 255, 255, 0.3);
}

.site-layout .site-layout-background {
  background: #fff;
}

[data-theme='dark'] .site-layout .site-layout-background {
  background: #141414;
}
</style>

src/home/index.vue

<script setup>

</script>

<template>
home
</template>

<style scoped>

</style>

src/line/quick_start.vue

<script setup>
import {onMounted} from "vue";
import {Line} from "@antv/g2plot";

onMounted(() => {
  const data = [
    {year: '1991', value: 3},
    {year: '1992', value: 4},
    {year: '1993', value: 3.5},
    {year: '1994', value: 5},
    {year: '1995', value: 4.9},
    {year: '1996', value: 6},
    {year: '1997', value: 7},
    {year: '1998', value: 9},
    {year: '1999', value: 13},
  ];
  const line = new Line('container', {
    data,
    xField: 'year',
    yField: 'value',
  });
  line.render();
})
</script>

<template>
  <div id="container"></div>
</template>

<style scoped>

</style>

相关推荐

  1. vue3+antd+g2plot快速入门

    2024-07-12 13:52:03       25 阅读
  2. Vue3快速入门

    2024-07-12 13:52:03       46 阅读
  3. Vue3快速入门1

    2024-07-12 13:52:03       22 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-12 13:52:03       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-12 13:52:03       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-12 13:52:03       58 阅读
  4. Python语言-面向对象

    2024-07-12 13:52:03       69 阅读

热门阅读

  1. 硬件产品经理:电子产品加工成本

    2024-07-12 13:52:03       23 阅读
  2. 1.人工智能核心概念

    2024-07-12 13:52:03       22 阅读
  3. C++语法提高A-字节对齐

    2024-07-12 13:52:03       24 阅读
  4. Vue 3中 watch 和 watchEffect的区别?

    2024-07-12 13:52:03       22 阅读
  5. tkinter的iconbitmap默认图标

    2024-07-12 13:52:03       19 阅读
  6. 【SQL】MySQL 的乐观锁和悲观锁

    2024-07-12 13:52:03       21 阅读
  7. 排序列表 原生方法和comparator方法

    2024-07-12 13:52:03       23 阅读
  8. 音频demo:将PCM数据和Speex数据进行相互编解码

    2024-07-12 13:52:03       22 阅读