实战:在vue3.0引入echarts的正确姿势
vue
vuejs/vue: 是一个用于构建用户界面的 JavaScript 框架,具有简洁的语法和丰富的组件库,可以用于开发单页面应用程序和多页面应用程序。
项目地址:https://gitcode.com/gh_mirrors/vu/vue
免费下载资源
·
1.下载 echarts
npm i -s echarts
2.在main.js中引入
import { createApp } from 'vue'
import App from './App.vue'
// 引入 echarts
import * as echarts from 'echarts'
const app = createApp(App)
// 全局挂载 echarts
app.config.globalProperties.$echarts = echarts
app.mount('#app')
3.方式一:vue3.0的写法,在组件中使用
<template>
<div
ref="myChart"
id="myChart"
:style="{ width: '800px', height: '400px' }"
></div>
</template>
<script>
import { getCurrentInstance, onMounted } from 'vue';
export default {
setup() {
// 通过 internalInstance.appContext.config.globalProperties 获取全局属性或方法
let internalInstance = getCurrentInstance();
let echarts = internalInstance.appContext.config.globalProperties.$echarts;
onMounted(() => {
const dom = document.getElementById('myChart');
const myChart = echarts.init(dom); // 初始化echarts实例
const option = {
xAxis: {
type: 'category',
data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
},
yAxis: {
type: 'value'
},
series: [
{
data: [820, 932, 901, 934, 1290, 1330, 1320],
type: 'line',
smooth: true
}
]
};
// 设置实例参数
myChart.setOption(option);
});
return {};
}
};
</script>
4:方式二:全局挂载后,在组件中以 vue2 的写法
<template>
<div
ref="myChart"
id="myChart"
:style="{ width: '800px', height: '400px' }"
></div>
</template>
<script>
export default {
mounted() {
this.drawLine();
},
methods: {
drawLine() {
const dom = this.$refs['myChart'];
const myChart = this.$echarts.init(dom); // 初始化echarts实例
const option = {
xAxis: {
type: 'category',
data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
},
yAxis: {
type: 'value'
},
series: [
{
data: [820, 932, 901, 934, 1290, 1330, 1320],
type: 'line',
smooth: true
}
]
};
// 设置实例参数
myChart.setOption(option);
}
}
};
</script>
5.方式三:直接在组件中引入echarts
<template>
<div
ref="myChart"
id="myChart"
:style="{ width: '800px', height: '400px' }"
></div>
</template>
<script>
// 方式二:直接在组件中引入echarts
import * as echarts from 'echarts';
export default {
mounted() {
const dom = this.$refs['myChart']; // 获取dom节点
const myChart = echarts.init(dom); // 初始化echarts实例
const option = {
xAxis: {
type: 'category',
data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
},
yAxis: {
type: 'value'
},
series: [
{
data: [820, 932, 901, 934, 1290, 1330, 1320],
type: 'line',
smooth: true
}
]
};
// 设置实例参数
myChart.setOption(option);
}
};
</script>
GitHub 加速计划 / vu / vue
207.54 K
33.66 K
下载
vuejs/vue: 是一个用于构建用户界面的 JavaScript 框架,具有简洁的语法和丰富的组件库,可以用于开发单页面应用程序和多页面应用程序。
最近提交(Master分支:2 个月前 )
73486cb5
* chore: fix link broken
Signed-off-by: snoppy <michaleli@foxmail.com>
* Update packages/template-compiler/README.md [skip ci]
---------
Signed-off-by: snoppy <michaleli@foxmail.com>
Co-authored-by: Eduardo San Martin Morote <posva@users.noreply.github.com> 4 个月前
e428d891
Updated Browser Compatibility reference. The previous currently returns HTTP 404. 5 个月前
更多推荐
已为社区贡献3条内容
所有评论(0)