zoukankan      html  css  js  c++  java
  • [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.

  • 相关阅读:
    ASM认证与口令文件
    asm 兼容性、asm 主要参数管理
    最常见的5个导致 RAC 实例崩溃的问题
    oracle隐含参数的查看与修改
    三种 Failover 之 Client-Side Connect time Failover、Client-Side TAF、Service-Side TAF
    Oracle RAC TAF 无缝failover
    oracle rac的特征
    安装ORACLE时在Linux上设置内核参数的含义
    关于GCC的理解——On the understanding of the GCC
    java中的闭包和回调
  • 原文地址:https://www.cnblogs.com/Answer1215/p/9410784.html
Copyright © 2011-2022 走看看