返回 导航

Vue.js

hangge.com

Vue.js - extends继承使用详解(通过混入实现代码复用)

作者:hangge | 2026-04-23 08:54
    我在前文中介绍了如何通过 Mixin 混入实现代码复用(点击查看)。除了 MixinVue.js 还提供了另一种代码逻辑复用的方式,即使用 extends 属性。使用 extends 属性可以扩展另一个组件,类似于 Mixin,但使用较少,因此仅了解即可。 下面演示如何通过 extends 属性实现代码的复用。

1,样例代码

(1)首先我们封装了一个名为 BasePage.vue 组件,用于复用 datamethods 选项中公共的代码逻辑。 
<script>
  // extends属性只能复用script标签中的逻辑,不能复用template和style
  export default {
    data() {
      return {
        title: "Hello BasePage"
      }
    },
    methods: {
      bar() {
        console.log("base page bar");
      }
    }
  }
</script>

(2)接着我们在 Home.vue 组件中导入 BasePage.vue 组件,并将其赋值给 extends 属性,以实现代码逻辑的复用。 
<template>
  <div class="home" style="border:1px solid #ddd;margin:10px">
    <!-- 下面使用了BasePage组件定义的数据 -->
    <h4>{{title}}</h4>
    <button @click="bar">单击调用BasePage组件定义的bar方法</button>
  </div>
</template>

<script>
  import BasePage from './BasePage.vue';
  export default {
    // 复用BasePage组件script标签中定义的选项
    extends: BasePage
  }
</script>

(3)最后 App.vue 组件导入、注册和使用 Home.vue 组件。
<template>
    <div class="app" style="border:1px solid #ddd;margin:4px">
        App组件
        <home />
    </div>
</template>

<script>
import Home from './Home.vue';
export default {
    components: {
        Home
    }
}
</script>

2,运行测试

保存代码,在浏览器中显示的效果如下图所示。
评论

全部评论(0)

回到顶部