起因
有个 Vue 项目用到 ECharts,组内几个前端菜鸟集成得乱七八糟的,于是考虑使用 ECharts 的包装组件。在研究了几个热门的封装组件后,发现存在依赖内置、过度封装、使用繁琐、不支持 Vue3 等问题,于是乎自己动手造轮子(>>成品传送门<<)。
Vue 3 的变化
Vue 3 并非完全颠覆性的版本,它向前兼容 Vue 2 的大部分写法。本文只对变更部分稍作介绍,详细内容请阅读官方文档。
- 新增组合 API(Composition API),利于拆分代码、聚合逻辑关注点;
- 全局 API 改由 ES 模块进行命名导出,有助于 Tree shaking 消除死代码;
import {
createApp, nextTick } from 'vue';
render函数不再接收h函数,改由全局 API 获取;
import {
h } from 'vue';
- VNode props 改为扁平结构;
// Vue 2
export default {
render: () => h('div', {
attrs: {
id: 'wrapper' },
domProps: {
innerText: 'Hello World' },
on: {
click() {
} },
}),
}
// Vue 3
export default {
render: () => h('div', {
id:
Vue 2与Vue 3兼容组件开发实践

本文介绍了如何编写一个同时兼容Vue 2和Vue 3的ECharts组件。作者首先讨论了Vue 3的主要变化,如组合API和生命周期的变化。接着,详细讲述了组件的设计,包括采用渲染函数以实现兼容,处理生命周期的方法,以及解决依赖内置问题的策略。此外,还提到了测试阶段使用npm别名进行同项目测试的方法。最后,分享了已发布的组件库链接,邀请社区参与反馈。
最低0.47元/天 解锁文章
1389

被折叠的 条评论
为什么被折叠?



