如何根据 Buefy 断点动态设置元素的 class
How to dynamic set element's class depending on Buefy breakpoint
所以我一直在使用Buefy as an UI library for this new project and I come from a Vuetify后台。
我想用Buefy实现的是:
<div
:class="{
'ml-2': (condition to apply the class to mobile breakpoint)
}"
>
...
在 Vuetify 中我会这样写代码:
<div
:class="{
'ml-2': $vuetify.breakpoint.mobile,
}"
>
...
Buefy 中是否有等效的解决方案?
我查看了 Buefy 的文档,它似乎没有断点功能。
您可以通过创建插件或仅在组件中添加以下内容来自己手动完成:
<script>
export default {
data() {
return {
isMobile: false,
}
},
mounted() {
const mediaQuery = window.matchMedia('(min-width: 1024px)');
// Set initial value on first load.
this.isMobile = !mediaQuery.matches
// Listen for changes
mediaQuery.addEventListener('change', event => {
if (event.matches) {
console.log('>= 1024px');
this.isMobile = false;
} else {
console.log('< 1024px');
this.isMobile = true;
}
})
}
}
</script>
所以我一直在使用Buefy as an UI library for this new project and I come from a Vuetify后台。
我想用Buefy实现的是:
<div
:class="{
'ml-2': (condition to apply the class to mobile breakpoint)
}"
>
...
在 Vuetify 中我会这样写代码:
<div
:class="{
'ml-2': $vuetify.breakpoint.mobile,
}"
>
...
Buefy 中是否有等效的解决方案?
我查看了 Buefy 的文档,它似乎没有断点功能。
您可以通过创建插件或仅在组件中添加以下内容来自己手动完成:
<script>
export default {
data() {
return {
isMobile: false,
}
},
mounted() {
const mediaQuery = window.matchMedia('(min-width: 1024px)');
// Set initial value on first load.
this.isMobile = !mediaQuery.matches
// Listen for changes
mediaQuery.addEventListener('change', event => {
if (event.matches) {
console.log('>= 1024px');
this.isMobile = false;
} else {
console.log('< 1024px');
this.isMobile = true;
}
})
}
}
</script>