目录

Vue3组件继承-extends

Vue3》》组件继承 extends

extends 选项式

组合式 api 就是 组合式函数 Hooks

基类逻辑 (useBase.js) - 这是一个组合式函数

// useBase.js - 这不是一个组件,而是一个可复用的逻辑函数
import { ref, onMounted } from 'vue';

export function useBase() {
  const baseMessage = ref('Hello from Base Logic!');
  const baseCount = ref(0);

  function baseIncrement() {
    baseCount.value++;
  }

  onMounted(() => {
    console.log('Base logic mounted');
  });

  // 将需要暴露的变量和方法返回
  return {
    baseMessage,
    baseCount,
    baseIncrement
  };
}

》》子组件 (ChildComponent.vue) - 使用组合式函数

<template>
  <div>
    <p>{{ baseMessage }}</p>
    <p>Child count: {{ childCount }}</p>
    <button @click="baseIncrement">Base ++</button>
    <button @click="childIncrement">Child ++</button>
  </div>
</template>

<script setup>
import { ref } from 'vue';
// 导入并“组合”基类逻辑,而不是继承它
import { useBase } from './useBase';

// 使用基类逻辑,并解构出其返回的内容
const { baseMessage, baseCount, baseIncrement } = useBase();

// 子组件自己的逻辑
const childCount = ref(10);
const childIncrement = () => {
  childCount.value++;
};
</script>

https://i-blog.csdnimg.cn/direct/8a43d25fb24f499187597bea2238140e.png