使用vuex3来对窗口的高度宽度进行监听

 vuex中的代码


    state: {
        windowHeight: window.innerHeight,
        windowWidth: window.innerWidth,
    },

    mutations: {
        setWindowHeight(state, height) {
            state.windowHeight = height;
        },
        setWindowWidth(state, width) {
            state.windowWidth = width;
        },
    },

    actions: {
        updateWindowDimensions({ commit }) {
            commit('setWindowHeight', window.innerHeight);
            commit('setWindowWidth', window.innerWidth);
        },
        listenToWindowResize({ dispatch }) {
            window.addEventListener('resize', () => {
                dispatch('updateWindowDimensions');
            });
        },
    },

    getters: {
        getWindowHeight: (state) => state.windowHeight,
        getWindowWidth: (state) => state.windowWidth,
    },

应用层面的代码

<template>
  <div>
    {{windowHeight}}
  </div>
</template>

<script>
export default {
  name: 'RightNavigation',

  // 页面访问次数较多,使用计算属性存储一下
  computed: {
    windowHeight() { // 更新后的窗口高度
      return this.$store.getters.getWindowHeight;
    },
    windowWidth() { // 更新后的窗口宽度
      return this.$store.getters.getWindowWidth;
    }
  },

  created() { // 手动启动一下监听窗口的宽度高度变化
    this.$store.dispatch('listenToWindowResize');
  },

}
</script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值