写个兼容Vue3和2的组件

起因

有个 Vue 项目用到 ECharts,组内几个前端菜鸟集成得乱七八糟的,于是考虑使用 ECharts 的包装组件。在研究了几个热门的封装组件后,发现存在依赖内置、过度封装、使用繁琐、不支持 Vue3 等问题,于是乎自己动手造轮子(>>成品传送门<<)。

Vue 3 的变化

Vue 3 并非完全颠覆性的版本,它向前兼容 Vue 2 的大部分写法。本文只对变更部分稍作介绍,详细内容请阅读官方文档

  1. 新增组合 API(Composition API),利于拆分代码、聚合逻辑关注点;
  2. 全局 API 改由 ES 模块进行命名导出,有助于 Tree shaking 消除死代码;
import {
    createApp, nextTick } from 'vue';
  1. render 函数不再接收 h 函数,改由全局 API 获取;
import {
    h } from 'vue';
  1. 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
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值