【使用vite创建echarts项目】

创建项目

pnpm create vite chinabuilder-vue

环境变量

开发环境
.env.development

NODE_ENV=development

VITE_APP_TITLE=ZongLiaTools开发环境

VITE_SERVE=http://localhost:8080/

VITE_APP_BASE_API=/api

生产环境
.env.production

NODE_ENV=production

VITE_APP_TITLE=ZongLiaTools生产环境


VITE_SERVE=http://xxx.xxx.xxx.xxx:18080/

VITE_APP_BASE_API=/api

配置 @ 作为 src 目录的别名

Vite 配置文件中出现 找不到名称"path" 的错误,是因为 ​未正确引入 Node.js 的 path 模块,且 ​TypeScript 缺乏 Node.js 类型声明。
Vite 配置文件运行在 Node.js 环境下,所以需要 @types/node 提供类型支持:

pnpm add -D @types/node

vite.config.ts

import {
   
    defineConfig, loadEnv } from 'vite'
import vue from '@vitejs/plugin-vue'
import path from 'path'

export default defineConfig(({
   
    mode }) => {
   
   

  const env = loadEnv(mode, process.cwd())// 根据 mode 加载对应的 .env 文件

  return {
   
   
    plugins: [vue()],
    resolve: {
   
   
      alias: {
   
   
        '@': path.resolve(__dirname, 'src') // 让 @ 代表 src 目录
      }
    },
  }
})

tsconfig.app.json

 "compilerOptions": {
   
   
	......
    // 配置别名
    "baseUrl": ".",
    "paths": {
   
   
      "@/*": ["src/*"]
    }
  },

让 TypeScript 能够识别 .vue 文件的导入

vite-env.d.ts

/// <reference types="vite/client" />

// 声明所有 .vue 文件
declare module '*.vue' {
   
   
    import {
   
    DefineComponent } from 'vue'
    const component: DefineComponent<{
   
   }, {
   
   }, any>
    export default component
}

使用 Vue Router 来管理应用的路由

pnpm add vue-router

在 src/router文件夹下,创建 index.ts 文件

import {
   
    createWebHistory, createRouter } from "vue-router";

/* Layout */
export const Layout = () => import("@/layout/index.vue");

// 公共路由
export const constantRoutes = [

    // 首页
    {
   
   
        path: "/",
        component: Layout,
        redirect: "/index",
        children: [
            {
   
   
                path: "index",
                component: () => import("@/views/index.vue"),
                name: "Index",
                meta: {
   
    title: "首页", icon: "dashboard", affix: true }
            }
        ]
    },
];

// 动态路由,基于用户权限动态去加载
export const dynamicRoutes = [

];

const router = createRouter({
   
   
    history: createWebHistory(),
    routes: constantRoutes,
    // 刷新时,滚动条位置还原
    //scrollBehavior: () => ({ left: 0, top: 0 }),
    scrollBehavior(to, from, savedPosition) {
   
   
        if (savedPosition) {
   
   
            return savedPosition;
        } else {
   
   
            return {
   
    top: 0 };
        }
    },
});

export default router;

配置主应用(App.vue)
路径: src/App.vue

<template>
  <div id="app">
    <router-view /> <!-- 用于显示路由组件 -->
  </div>
</template>

<script setup>

</script>

在 main.ts 中挂载路由
路径: src/main.ts

import {
   
    createApp } from 'vue'
import App from './App.vue'
import router from './router'  // 引入路由

const app = createApp(App)

app.use(router) // 使用路由

app.mount('#app')

集成sass

pnpm add<
### Vue3 + Vite 中正确配置和使用 ECharts #### 安装依赖包 为了在 Vue3 和 Vite 的环境中顺利运行 ECharts,需先安装必要的 npm 包。通过命令行工具执行以下指令来完成安装: ```bash npm install echarts vue-echarts --save ``` 此操作会下载并保存 `echarts` 及其官方推荐用于 Vue 的封装组件 `vue-echarts` 到项目的 node_modules 文件夹内。 #### 注册全局或局部组件 对于希望在整个应用范围内都可访问到的图表实例来说,在 main.js 或者 main.ts 中注册 `vue-echarts` 作为全局组件是一种常见做法;而对于只需要特定页面展示的情况,则可以在单文件组件内部按需导入即可[^1]。 #### 创建渲染容器 HTML 结构部分定义了一个 div 元素充当图表绘制区域,并为其指定了唯一 ID 属性以便后续 JavaScript 脚本能够准确定位它。同时设置了样式规则使该容器居中显示且具有适当大小以容纳图形内容[^2]。 ```html <template> <div class="echarts-container"> <div id="main" style="width: 600px;height:400px;"></div> <!-- 图表容器 --> </div> </template> <style scoped> .echarts-container { display: flex; justify-content: center; align-items: center; } </style> ``` #### 初始化与更新选项数据 当 DOM 加载完成后调用生命周期钩子函数 `onMounted()` 来初始化 ECharts 实例对象并与之前准备好的 HTML 元素关联起来。接着可以设置主题风格并通过 `setOption()` 方法传入具体的可视化参数描述符从而实现动态绘图效果[^3]。 ```javascript import { ref, onMounted } from 'vue'; import * as echarts from 'echarts/core'; import wonderland from '@/tool/wonderland'; export default { setup() { let myChart = null; onMounted(() => { // 注册自定义的主题 echarts.registerTheme('wonderland', wonderland); // 基于准备好的dom,初始化echarts实例 myChart = echarts.init(document.getElementById('main'), 'wonderland'); // 设置一些基础配置项... const option = {}; // 使用刚指定的配置项和数据显示图表。 myChart.setOption(option); }); return {}; }, }; ``` #### 处理静态资源路径问题 针对某些情况下可能出现的地图背景图片或其他外部素材加载失败的现象,应该注意调整引用地址格式确保它们能被正确解析为相对 URL 形式而非绝对路径。例如将本地存储下的 PNG 文件链接转换成如下所示模式[^4]: ```javascript datas.forEach((item, index) => { item.url = new URL(`../assets/images/technology/brands/tech_${index}.png`, import.meta.url).href; }) ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值