关于Vue2组件适配迁移到Vue3的坑(持续更新)

8 篇文章 0 订阅
6 篇文章 0 订阅

@click触发的逻辑有修改

vue2中的子组件默认不会冒泡到父组件,所以类似于@click的方法需要在子组件内被手动返回,vue3中修复了这个bug,vue2组件的这部分需要被修改下

// vue 2中

// 子组件
<template>
    <div @click="testClick">
        ...
    </div>
</template>

<script>
    ...
    methods: {
        testClick () {
            this.$emit('click')
        }
    }
</script>


//父组件
<template>
    <子组件 @click="test">点击</子组件>
</template>





/** vue2 需要这种方式才可以在父组件内触发点击子组件的方法 其他onXXXX方法同理*/

而在vue3中copmsition api写法不需要在子组件返回子组件事件,直接在父组件正常@click即可,否则会重复触发两次绑定的方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue 2和Vue 3在组件封装方面有一些区别。下面是一些主要的区别: 1. 语法:Vue 2使用的是Options API,而Vue 3引入了Composition API。Options API基于选项对象,在一个对象中定义组件的选项,但随着组件变得复杂,选项对象可能会变得冗长。Composition API允许开发者通过函数的形式来组织组件的逻辑,使代码更易维护和重用。 2. 组件注册:在Vue 2中,我们使用Vue.component()全局注册组件或者通过components选项在局部注册组件。而在Vue 3中,全局注册的方法变成了app.component(),而且不再需要通过Vue实例来进行注册。 3. Props 的类型声明:在Vue 2中,我们需要使用props选项来声明组件的Props,并可以指定各个prop的类型、默认值等信息。而在Vue 3中,可以使用`<script setup>`语法来声明Props并给它指定类型。 4. 生命周期钩子:在Vue 2中,我们使用各种生命周期钩子函数来处理组件的生命周期事件。而在Vue 3中,Options API中的生命周期钩子函数仍然可用,但推荐使用Composition API中的函数式API来处理。 5. Transition/动画:Vue 2中有内置的transition和动画系统,可以通过<transition>和<transition-group>标签来实现。而在Vue 3中,这些功能被迁移到了单独的@vue/transition和@vue/animation库中,需要额外安装和引入。 需要注意的是,Vue 3在组件封装方面引入了更多的改进,并且提供了更强大和灵活的开发体验。但由于Vue 3相对于Vue 2来说还比较新,一些库和插件可能还没有完全适配Vue 3,因此在升级之前需要考虑项目的具体情况和可行性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值