Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vue.js 仅在mobile-Vuejs和引导上添加类_Vue.js_Vuejs2_Bootstrap 4 - Fatal编程技术网

Vue.js 仅在mobile-Vuejs和引导上添加类

Vue.js 仅在mobile-Vuejs和引导上添加类,vue.js,vuejs2,bootstrap-4,Vue.js,Vuejs2,Bootstrap 4,我只想在手机上添加一个类。在使用vuetify之前,我已经这样做了,但是使用vue似乎更困难: 代码: <div class="{'mobileSnackBar': breakpoint.xs}"> <p> This is my snackbar </p> </div> 这是我的小吃吧 在vuetify中有$vuetify.breakpoint.xs,但是如何使用引导程序获得类似的效果?或者请推荐一个替代方案。使用vuetify,您可以执

我只想在手机上添加一个类。在使用vuetify之前,我已经这样做了,但是使用vue似乎更困难:

代码:

<div class="{'mobileSnackBar': breakpoint.xs}">
  <p> This is my snackbar </p>
</div>

这是我的小吃吧


在vuetify中有
$vuetify.breakpoint.xs
,但是如何使用引导程序获得类似的效果?或者请推荐一个替代方案。

使用vuetify,您可以执行以下操作:

computed: {
    is_screen_small() {
        return this.$vuetify.breakpoint.smOnly
    },
}
然后像这样组合:

<div class="{'mobileSnackBar': is_screen_small}">
  <p> This is my snackbar </p>
</div>
不过,有一种解决方案与引导无关:

computed: {
  is_mobile() {
    const isMobile = window.matchMedia("only screen and (max-width: 760px)")
    return isMobile.matches ? true : false
  }
}
并将其组合为:

<div class="{'mobileSnackBar': is_mobile}">
  <p> This is my snackbar </p>
</div>

这是我的小吃吧


引导的另一种方法是使用断点类来显示/隐藏元素,如下所示:

<div class="mobileSnackBar d-sm-none">
   <p> This is my snackbar </p>
</div>
<div class="d-none d-sm-block">
   <p> This is my snackbar </p>
</div>

这是我的小吃吧

这是我的小吃吧


组件比html更有意义,甚至可能不是最干净的解决方案,但它确实有效。

为什么不使用CSS mediaquery?因为使用vuetify,这种方法更干净。因此,我正在寻找一种类似的替代方法,滥用JS,因为CSS的工作自然不会“更干净”。事实正好相反。您是否有尝试过的Vue代码段?不幸的是,根据屏幕大小无法保证您使用的是触摸式移动设备。如果你把你的桌面屏幕缩得足够小,它会认为它是移动的。因此,您需要小心一点,特别是如果您需要捕获鼠标事件,如mouseover或mouseleave。此外,一些个人电脑现在有触摸屏,所以鼠标和触摸事件都可以触发。。。这有点像雷区。
<div class="mobileSnackBar d-sm-none">
   <p> This is my snackbar </p>
</div>
<div class="d-none d-sm-block">
   <p> This is my snackbar </p>
</div>