Vue使用minxins引用

2023-10-29  本文已影响0人  Frank_Fang

// mixin/setTableHeight.js

export default {
  data () {
    return {
      tableHeight: 500,
      ready: false
    }
  },
  watch: {
    $route: {
      handler: function (route, oldRoute) {
        this.setTableHeight()
        window.addEventListener('resize', this.setTableHeight)
      },
      immediate: true
    }
  },
  methods: {
    setTableHeight () {
      this.$nextTick(() => {
        const tableWrapHeight = this.$refs.tableWrap?.offsetHeight
        this.tableHeight = tableWrapHeight || 500
      })
    }
  },
  async activated () {
    if (this.ready || this.$Config.ready === 0) {
      this.setTableHeight()
      window.addEventListener('resize', this.setTableHeight)
    }
    this.ready = true
    this.$Config.ready++
  },
  deactivated () {
    window.removeEventListener('resize', this.setTableHeight)
  },
  destroyed () {
    window.removeEventListener('resize', this.setTableHeight)
  }
}

// 引用

import setTableHeight from '@/mixin/setTableHeight.js'
mixins: [setTableHeight],

// 备注:引入mixin文件后,可以直接使用里面的方法(包括多个方法)

上一篇 下一篇

猜你喜欢

热点阅读