萌新求助,Vue库模式的ts声明问题

萌新最近学习 element 源码, 想自己模仿个 遇到瓶颈 主要集中在ts声明方面

toast.vue 页面

<template>
  <div class="xyl-toast" v-show="visible">{{msg}}</div>
</template>

<script lang="ts">
import { Component, Prop, Vue } from "vue-property-decorator";

@Component({
  name: "XylToast"
})
export default class XylToast extends Vue {
   msg: string = "";
   visible: boolean = false;
   
   mounted(){
     setTimeout(()=>{
       this.visible = false;
     },3000)
   }

}
</script>
import Vue from 'vue';
import XylToast from './src/toast.vue'

let XylToastConstructor = Vue.extend(XylToast);

let instance;

const Toast = function (msg: string) {

    instance = new XylToastConstructor({
        data: { msg }
    });
    instance.$mount();
    document.body.appendChild(instance.$el);
    
    instance.visible = true;

}

export default Toast;

图片描述

这个如何解决呢,

阅读 2.1k
1 个回答

Vue.extend没必要 因为你export出来的那个class已经extends了
以下是我的办法 ,但是我觉得会有更好的解决方案

clipboard.png

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题