Vue3 引入echarts示例,不显示图表

问题:

 为是了解echarts所有在创建vue项目的HelloWorld.vue同级加了一个EchtTest.vue,但是首页一直不显示图表,最后发现是测试图表大小

 <div ref="chart" ></div> 改成下面:

<div ref="chart" style="width: 400px;height: 300px"></div>

最终解决效果:

代码如下

EchtTest.vue源码:

<template>
  <div>
    <div ref="chart" style="width: 400px;height: 300px"></div>
  </div>
</template>
<script >
// import * as echarts from 'echarts'
// import {inject} from "vue";

// const echarts  = inject('echarts')
export default{  // export 与其他地方要用此内容时的:import 是一对人儿。
  name:"EchtTest",
  data () {
    return {};
  },
  methods: {
    initCharts () {
      let myChart = this.$echarts.init(this.$refs.chart);
      // let myChart = echarts.init(this.$refs.chart);
      // 绘制图表
      myChart.setOption({
        title: { text: '在Vue中使用echarts' },
        tooltip: {},
        xAxis: {
          data: ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"]
        },
        yAxis: {},
        series: [{
          name: '销量',
          type: 'bar',
          data: [5, 20, 36, 10, 10, 20]
        }]
      });
    }
  },
  mounted () {
    this.initCharts();
  }
}
</script>

 App.vue源码:

<template>
  <img alt="Vue logo" src="./assets/logo.png">
  <div>

    <HelloWorld msg="Welcome to Your Vue.js App"/>
  </div>
  <br/>
  <div>
    <EchtTest chart/>
  </div><br/>
  ---------------------------------------------
  <br/>
  <br/>
</template>

<script>
// import * as echarts from 'echarts'

import HelloWorld from './components/HelloWorld' //导入helloworld vue模块
import EchtTest from './components/EchtTest.vue'
// import {provide} from "vue";

// provide('echarts',echarts)

export default {
  name: 'App',
  components: {
    HelloWorld,EchtTest
  }
}
</script>

<style>
#app {
  font-family: Avenir, Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  color: #2c3e50;
  margin-top: 60px;
}
</style>

配置的步骤:

根据网上操作教程:用最新webstorm创建一个vue3的项目,然后在webstrom下面Terminal, 安装 echarts:

npm install echarts --save

但是网络不好一直安装失败,用cnpm install echarts --save, 安装成功之后,自动更新package.json

主要是更新依赖库:

"devDependencies": {
    "@babel/core": "^7.12.16",
    "@babel/eslint-parser": "^7.12.16",
    "@vue/cli-plugin-babel": "~5.0.0",
    "@vue/cli-plugin-eslint": "~5.0.0",
    "@vue/cli-service": "~5.0.0",
    "eslint": "^7.32.0",
    "eslint-plugin-vue": "^8.0.3"
  },

{
  "name": "vuepract",
  "version": "0.1.0",
  "private": true,
  "scripts": {
    "serve": "vue-cli-service serve",
    "build": "vue-cli-service build",
    "lint": "vue-cli-service lint"
  },
  "dependencies": {
    "core-js": "^3.8.3",
    "echarts": "^5.4.0",
    "vue": "^3.2.13"
  },
  "devDependencies": {
    "@babel/core": "^7.12.16",
    "@babel/eslint-parser": "^7.12.16",
    "@vue/cli-plugin-babel": "~5.0.0",
    "@vue/cli-plugin-eslint": "~5.0.0",
    "@vue/cli-service": "~5.0.0",
    "eslint": "^7.32.0",
    "eslint-plugin-vue": "^8.0.3"
  },
  "eslintConfig": {
    "root": true,
    "env": {
      "node": true
    },
    "extends": [
      "plugin:vue/vue3-essential",
      "eslint:recommended"
    ],
    "parserOptions": {
      "parser": "@babel/eslint-parser"
    },
    "rules": {
      "vue/no-unused-components": "off",
      "no-unused-vars": "off"
    }
  },
  "browserslist": [
    "> 1%",
    "last 2 versions",
    "not dead",
    "not ie 11"
  ]
}

main.js引入

import { createApp } from 'vue'
import App from './App.vue'
import * as echarts from 'echarts'
const app = createApp(App)
app.config.globalProperties.$echarts = echarts
app.mount('#app')

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现 Vue 3 中 Echarts 动态加载数据并进行滚动刷新,可以按照以下步骤进行操作: 1. 在 Vue 3 组件中引入 Echarts,并在 `data` 中定义一个数据数组用于存储动态数据: ```javascript import echarts from 'echarts' export default { data() { return { chartData: [] // 存储动态数据的数组 } }, mounted() { this.initChart() // 初始化图表 this.loadData() // 加载初始数据 }, methods: { initChart() { this.chart = echarts.init(this.$refs.chartContainer) // 在这里进行图表的初始化配置 this.chart.setOption({ // 图表的配置项 }) }, loadData() { // 模拟异步加载数据 setTimeout(() => { // 假设获取到了新的数据 newData const newData = [/* 新的数据数组 */] this.chartData.push(...newData) this.refreshChart() this.loadData() // 继续加载数据 }, 2000) // 每隔 2 秒加载一次数据,可以根据需求调整时间间隔 }, refreshChart() { this.chart.setOption({ series: [{ data: this.chartData // 更新图表的数据 }] }) } } } ``` 2. 在模板中添加一个容器元素,并使用 `ref` 引用它: ```html <template> <div> <div ref="chartContainer" style="width: 100%; height: 400px;"></div> </div> </template> ``` 在上述代码中,`mounted` 钩子函数中调用了 `initChart` 方法来初始化图表,并在 `loadData` 方法中模拟异步加载数据的过程。每隔 2 秒加载一次数据,将新的数据追加到 `chartData` 数组中,并调用 `refreshChart` 方法来更新图表的数据。这样就能实现动态加载数据并进行滚动刷新了。 请注意,上述代码只是一个示例,你需要根据你的实际需求进行适当的修改和调整。希望对你有所帮助!如果还有其他问题,请继续提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值