在VueJS

时间:2018-05-23 14:09:00

标签: javascript vue.js vuejs2

基本上,我需要的是一个计算属性,当窗口内部宽度等于或低于768px时返回true,当它高于768px时返回false。

我做了什么:

computed: {
  isMobile() {
    if (window.innerWidth <= 768) {
      return true
    } return false
  }
}

但是只计算一次该属性,如果我稍后调整窗口大小,它对该更改没有反应,我该怎么办?

2 个答案:

答案 0 :(得分:8)

将eventlistener添加到窗口中,如下所示:

new Vue({
  el: "#app",
  data() { return { windowWidth: window.innerWidth } },
  mounted() {
    window.addEventListener('resize', () => {
      this.windowWidth = window.innerWidth
      console.log(this.isMobile)
    })
  },
  computed: {
    isMobile() {
      return this.windowWidth <= 768
    }
  }
})

答案 1 :(得分:0)

计算属性仅在其依赖关系发生变化时才会更新,因此这里的isMobile不会被动。