美文网首页
Vue&&TypeScript中是用mixins

Vue&&TypeScript中是用mixins

作者: 二营长家的张大炮 | 来源:发表于2020-11-16 11:05 被阅读0次

混入 (mixins) 是一种分发 Vue 组件中可复用功能的非常灵活的方式。混入对象可以包含任意组件选项。

我们很多组件中需要用到一些公共的方法,就可以放到mixins中

Vue中是用mixins

/*eslint-disable*/
import { Component, Mixins } from 'vue-property-decorator'
import moment from 'moment'

/**
 * mixins
 */
@Component
class commonFnMixins extends Mixins() {
  /**
   * 格式化时间
   * @param time 时间戳
   * @param format 格式
   */
  formatTime = (time: number, format = 'YYYY-MM-DD HH:MM') => {
    if (!time) {
      return '-- --'
    }
    return moment(time).format(format)
  }

  /**
   * 格式化时长
   * @param time 时间戳
   * @param unit 单位
   */
  formatDuration = (time: number, unit = 1) => {
    if (!time) {
      return '00:00'
    }
    var minutes = Math.floor(time / 60 / unit)
    var seconds = Math.floor((time - minutes * 60 * unit) / unit)
    return (
      (minutes > 9 ? minutes : '0' + minutes) +
      ':' +
      (seconds > 9 ? seconds : '0' + seconds)
    )
  }
  /**
   * 设置网页title
   * @param title 标题
   */
  setDocumentTitle(title: string) {
    document.title = title
  }
  /**
   * 拼接歌手名
   * @param list
   */
  getArtist(list: any) {
    if (!list) {
      return ''
    }
    const names = list.map((item: any) => {
      return item.name
    })
    return names.join('/')
  }
}

export default commonFnMixins

具体使用:

import { Mixins } from 'vue-property-decorator'
import commonFnMixins from '@/utils/mixins'
export default class xxx extends Mixins(commonFnMixins)

相关文章

网友评论

      本文标题:Vue&&TypeScript中是用mixins

      本文链接:https://www.haomeiwen.com/subject/tdmabktx.html