我现在使用的获取屏幕大小的方法是:
export const state = () => ({
deviceType: window.innerWidth <= 600 ? 'mobile' : 'desktop',
})
export const getters = {
getDeviceType(state) {
return state.deviceType
}
}
这个问题是我的网站需要刷新才能看到我设置的只在移动的上显示的更改。
我读过关于使用window.addEventListener..
能够解决这个问题,因为当屏幕调整大小时,它会不断触发一个功能。
但我正在寻找一种更直接的方法,理想情况下使用computed或watcher。我认为这不是一个好方法,使用window.innerWidth,所以任何推荐的方法都会非常感激。
先谢谢你了!
2条答案
按热度按时间x7yiwoj41#
这个via computed对我来说很好:How can I use window size in Vue? (How do I detect the soft keyboard?)
它总是在窗口大小改变时自动更新,而且,像css中一样,断点指定被指示。
eit6fx6z2#
我使用Vue 3和TypeScript的解决方案。它很方便,易于使用,并且性能非常好,因为无论有多少组件示例使用设备信息,它都只会附加一个窗口调整侦听器。
唯一的问题是,您必须手动将CSS中的介质中断与此处定义的中断对齐。
要在组件中使用此功能,请执行以下操作: