当前位置:首页 > VUE

vue3实现继承

2026-01-07 03:39:34VUE

在Vue 3中实现组件继承可以通过组合式API或选项式API完成,以下是具体实现方法:

使用组合式API继承逻辑

通过setup()函数复用逻辑,结合provide/inject或自定义hooks:

// 父组件逻辑 (base.js)
import { ref, provide } from 'vue'
export function useBaseLogic() {
  const count = ref(0)
  const increment = () => count.value++

  provide('baseData', { count, increment })
  return { count, increment }
}

// 子组件
import { inject } from 'vue'
const { count, increment } = inject('baseData')

使用选项式API继承

通过extends属性直接继承组件选项:

// 基础组件 (BaseComponent.vue)
export default {
  data() {
    return { baseValue: '继承属性' }
  },
  methods: {
    baseMethod() {
      console.log('基础方法')
    }
  }
}

// 子组件
import BaseComponent from './BaseComponent.vue'
export default {
  extends: BaseComponent,
  methods: {
    childMethod() {
      this.baseMethod() // 调用继承方法
    }
  }
}

使用渲染函数继承

通过h()函数组合模板:

import { h } from 'vue'
const BaseComponent = {
  render() {
    return h('div', this.$slots.default())
  }
}

export default {
  extends: BaseComponent,
  render() {
    return h('div', [
      h('p', '新增内容'),
      super.render() // 调用父级渲染
    ])
  }
}

通过mixins复用

虽然Vue 3推荐使用Composition API,但mixins仍可用:

const baseMixin = {
  created() {
    console.log('混入生命周期')
  }
}

export default {
  mixins: [baseMixin],
  created() {
    console.log('组件生命周期') // 执行顺序:混入先于组件
  }
}

注意事项

  • 组合式API更适合逻辑复用,选项式API的extends主要处理模板继承
  • 避免多重继承导致代码难以维护
  • 使用TypeScript时需注意类型推导,可通过泛型组件增强类型支持

每种方式适用于不同场景,组合式API的hooks模式是Vue 3推荐的主要继承方案。

vue3实现继承

分享给朋友:

相关文章

vue实现下拉菜单

vue实现下拉菜单

实现下拉菜单的基本思路 使用Vue实现下拉菜单可以通过动态绑定v-show或v-if控制菜单显示隐藏,结合事件监听(如@click或@mouseenter)触发状态切换。以下是两种常见实现方式:…

vue实现atm

vue实现atm

Vue实现ATM机模拟功能 使用Vue.js实现ATM机模拟功能需要结合组件化开发、状态管理以及用户交互逻辑。以下是关键实现步骤: 核心组件结构 创建以下Vue组件构建ATM界面: Car…

vue卖座网实现

vue卖座网实现

Vue 卖座网实现 项目结构搭建 使用 Vue CLI 快速初始化项目,安装必要依赖如 Vue Router、Vuex、Axios。 创建核心目录结构:components(通用组件)、views(页…

前端vue登录功能实现

前端vue登录功能实现

Vue 登录功能实现步骤 创建登录表单组件 在 Vue 项目中创建一个登录组件,通常命名为 Login.vue。该组件包含用户名和密码输入框以及提交按钮。 <template> &l…

vue怎么实现选中删除

vue怎么实现选中删除

实现选中删除功能的方法 在Vue中实现选中删除功能通常涉及以下几个关键步骤: 数据绑定与选中状态管理 使用v-model或v-for指令绑定列表数据,结合复选框或单选按钮实现选中状态管理。例如…

vue实现收起展开面板

vue实现收起展开面板

实现收起展开面板的方法 在Vue中实现收起展开面板功能可以通过多种方式完成,以下是几种常见的实现方法: 使用v-show或v-if控制显示隐藏 利用Vue的指令可以轻松实现面板的展开和收起:…