欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

详解TypeScript+Vue 插件 vue-class-component的使用总结

程序员文章站 2022-05-31 17:42:04
首先 下载 npm install vue-class-component vue-property-decorator --save-dev 一梭子直接干...

首先 下载

npm install vue-class-component vue-property-decorator --save-dev

一梭子直接干;

其次,咱来说说它们的区别与联系:

vue-property-decorator社区出品;vue-class-component官方出品

vue-class-component提供了vue、component等;

vue-property-decorator深度依赖了vue-class-component,拓展出了更多操作符:@prop、@emit、@inject、@model、@provide、@watch;

开发时正常引入vue-property-decorator就行

引入后写vue代码就是如此,

import {component, prop, vue} from 'vue-property-decorator'

@component
export default class app extends vue {
 name:string = 'simon zhang'

 // computed
 get myname():string {
 return `my name is ${this.name}`
 }

 // methods
 sayhello():void {
 alert(`hello ${this.name}`)
 }

 mounted() {
 this.sayhello();
 }
}

相当于

export default {
 data () {
 return {
  name: 'simon zhang'
 }
 },

 mounted () {
 this.sayhello()
 },

 computed: {
 myname() {
  return `my name is ${this.name}`
 }
 },

 methods: {
 sayhello() {
  alert(`hello ${this.name}`)
 },
 }
}

大佬都说爽的一批;

然鹅菜鸟我遇到问题一堆,以下做个积累总结:

1、写法问题:引入组件和接收父组件传过来的参数

@component({
 components: {
 xxxx
 },
 props: {
 mapflag: number
 }
})

2、获取refs,在其后面加上as htmldivelement(不知道是不是这插件引起的,懒得管,直接干就是)

let layoutlist:any = this.$refs.layout as htmldivelement

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。