// 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文件后,可以直接使用里面的方法(包括多个方法)
网友评论