尝试实现仅根据移动视口(viewport)将一些计算方法插入到元素上。这是我正在使用的基本内容:

<a class="nav-link float-left p-x-y-16" v-bind:class={active:isCurrentTopicId(t.id)} @click="onTopicClicked($event, m, t)" href="#">{{t.title}}</a>

<script>

export default {
    data() {
        return {
            isClosed: false
        }
    },
    computed: {
        toggleMenu() {
            return {
                isClosed: this.isClosed
            }
        }
    },
    watch: {
        browserWidth(prevWidth, newWidth) {
            console.log('width changed from ' + newWidth + ' to ' + prevWidth);
    },
    mounted() {
        var that = this;
        this.$nextTick(function() {
            window.addEventListener('resize', function(e) {
                that.browserWidth = window.innerWidth;
                if(that.browserWidth > 824) {
                    console.log('Desktop View');
                } else {
                    console.log('Mobile View');
                }
            })
        })
    }
}
</script>

我想尝试使用resize事件来确定浏览器的宽度,以便可以将计算函数动态插入到该<a>标记中

最佳答案

如Karthikeyan所述,您可以提供两个不同的元素(一个用于桌面,另一个用于移动),或有条件地将click事件添加到该元素:

v-on="isMobileView ? { mouseover: onTopicClicked($event, m, t) } : {}"

10-07 22:05