[Vue @Component] Extend Vue Components in TypeScript
This lesson shows how you can extend and reuse logic in Vue components using TypeScript inheritance. It will take you through extending a component, its properties and methods, and how hooks are triggered along the inheritance tree.
We can define a Parent.ts file, which only contains the logic without any template:
import { Component, Vue } from 'vue-property-decorator'; @Component export default class Parent extends Vue { created() { console.log("Parent is created") } click() { console.log("Parent is clicked") } parentClicked() { console.log("Parent is clicked") } }
Then we can extends this Parent Class from a vue component:
<template> <div class="hello"> <h1>{{ msg }}</h1> <h2>{{ fullMessage }}</h2> <button @click="click">Click</button> <button @click="parentClicked">Parent Click</button> </div> </template> <script lang="ts"> import { Component, Prop, Vue } from 'vue-property-decorator'; import Parent from './Parent'; @Component export default class HelloWorld extends Parent { @Prop() private msg!: string; // replace computed props get fullMessage() { return `${this.msg} should be fullmessage from a getter` } created() { console.log("Component is created") } click() { alert('Should replace what used to be defined in methods objects') } } </script>
Once we extends from Parent, HelloWorld Component can inherit its Parent class's methods and props.
For example:
Will call parentClicked method from Parent Class from HelloWorld Component.
<!-- HelloWorld.vue --> <button @click="parentClicked">Parent Click</button>
If we don't define 'click' method in HelloWolrd component, it will using Parent's click() method.
分类:
Vue
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
2017-08-02 [React] Style the body element with styled-components and "injectGlobal"
2017-08-02 [React] Style a React component with styled-components
2017-08-02 [D3] Create DOM Elements with D3 v4
2017-08-02 [D3] Modify DOM Elements with D3 v4
2017-08-02 [D3] Select DOM Elements with D3 v4
2016-08-02 [React] Set up React apps with zero configuration
2014-08-02 [Backbone]6. Collections.