Одним из способов достижения этой цели может быть настройка TailwindCSS-точек останова в вашем tailwind.config.js
и последующее повторное использование этого файла для импорта значений точек останова в ваш компонент Menu.
Здесь мы устанавливаем точки останова TailwindCSS в соответствии с документацией TailwindCSS . На самом деле мы просто устанавливаем значения точек останова TailwindCSS по умолчанию, но их установка делает их доступными через файл.
//tailwind.config.js
module.exports = {
theme: {
screens: {
sm: '640px',
md: '768px',
lg: '1024px',
xl: '1280px'
}
}
}
Теперь, в вашем Menu.vue, вы можете импортировать точку останова из вашей TailwindCSS-config и записатьнеобходимая функция, чтобы проверить, меньше ли текущий размер окна, чем точка останова md
. Если это не так, вы можете просто вернуть true
. Если это так, вы можете проверить, открывалось ли меню.
// Menu.vue
<script>
const tailwindConfig = require('tailwind.config.js')
export default {
data() {
return {
windowWidth: 0,
menuOpen: false,
mdBreakpoint: Number(tailwindConfig.theme.screens.md.replace('px', ''))
}
},
computed: {
menuVisible() {
return this.windowWidth > mdBreakpoint ? true : this.menuOpen
}
},
methods: {
updateWindowSize() {
this.windowWidth = window.innerWidth
},
clickMenu() {
this.menuOpen = !this.menuOpen
}
},
mounted() {
this.updateWindowSize()
window.addEventListener('resize', this.updateWindowSize)
},
beforeDestroyed() {
window.removeEventListener('resize', this.updateWindowSize)
}
}
</script>