Вы неправильно используете computed
свойства здесь. Предполагается, что они являются получателями, что означает, что они должны только возвращать готовые к иску значения. Вы на самом деле подключаете там прослушиватели событий.
Вместо этого вам нужно использовать атрибут данных и инициализировать своих слушателей в подключенном хуке:
export default {
name: 'Blah',
data () {
const tabletViewQuery = matchMedia('...')
return {
tabletViewQuery: tabletViewQuery.
tabletView: tableViewQuery.matches,
}
},
mounted () {
this.tabletViewQuery.addListener(() => {
this.tabletView = tableViewQuery.matches
}
}
}
и использовать его в таблице:
<div class="section-right" :class="{ 'col-7': tabletView }">
Однако, вероятно, гораздо более чистым решением было бы использование плагина vue-match-media .