window.onresize事件在vue项目中的应用

Posted coderwhytop

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了window.onresize事件在vue项目中的应用相关的知识,希望对你有一定的参考价值。

复制代码
//vue页面
<template> <div id=\'echart\'> 报表 </div> </template> <script> export default { data() { return { }; }, methods: { pageResize(){ this.$nextTick(()=>{ var echart = document.getElementById(\'echart\'); echart.style.height = document.documentElement.offsetHeight-220 + \'px\' }) } },
  //挂载window.onresize事件 mounted(){ let _this = this;//赋值vue的this window.onresize = ()=>{
    //调用methods中的事件 _this.pageResize(); } },
  //注销window.onresize事件 destroyed(){ window.onresize = null; } } </script> <style lang="scss"> #echart{ background-color: #fff; border-radius: 4px; padding: 20px; min-height: 400px; } </style>
复制代码

注意事项:

1、window.onresize事件一般放在created或者mounted生命周期中,这样界面改变是能触发。

2、window.onresize中的this指向的是window,不是指向vue,如果需要调用methods中的函数,需要在window.onresize事件的前面把指向vue的this赋值给其他字符,比如"_this"。

3、由于window.onresize是全局事件,在其他页面改变界面时也会执行,这样可能会出现问题,需要在出这个界面时注销window.onresize事件。

4、window.onresize说明一个问题:beforeCreate、created、beforeMount、mounted、beforeUpdate、updated中的会触发浏览器事件需要在destroyed、beforeDestory中销毁掉。

以上是关于window.onresize事件在vue项目中的应用的主要内容,如果未能解决你的问题,请参考以下文章

window.onresize事件

vue中在mounted中window.onresize不生效

vue中在mounted中window.onresize不生效

vue中在mounted中window.onresize不生效

Vue 实时过去 页面宽高

vue中是多个组件使用window.onresize不生效问题