Javascript 如何在Vue.js中调整大小时立即获取元素的宽度和高度

Javascript 如何在Vue.js中调整大小时立即获取元素的宽度和高度,javascript,events,vue.js,resize,Javascript,Events,Vue.js,Resize,在Vue.js中调整大小时,如何立即获取元素的宽度和高度? 这是我的代码笔插图 请帮我换到上班,谢谢 让应用程序=新Vue{ el:“应用程序”, 数据:{ 盒子:[{ 宽度:100, 身高:100 }, { 宽度:100, 身高:100 } ] } }; 应用程序{ 显示器:flex; 证明内容:中心; 对齐项目:居中; 柔性包装:包装; } .调整大小{ 显示器:flex; 证明内容:中心; 对齐项目:居中; 保证金:5px; 宽度:100px; 高度:100px; 溢出:隐藏; 调整大小

在Vue.js中调整大小时,如何立即获取元素的宽度和高度? 这是我的代码笔插图 请帮我换到上班,谢谢

让应用程序=新Vue{ el:“应用程序”, 数据:{ 盒子:[{ 宽度:100, 身高:100 }, { 宽度:100, 身高:100 } ] } }; 应用程序{ 显示器:flex; 证明内容:中心; 对齐项目:居中; 柔性包装:包装; } .调整大小{ 显示器:flex; 证明内容:中心; 对齐项目:居中; 保证金:5px; 宽度:100px; 高度:100px; 溢出:隐藏; 调整大小:两者; 背景色:C3E2CE; } {{box.width}x{{box.height}
请原谅,我还在学习Vue。我建议你采用更多的模块化方法,提取盒子,然后循环你想要多少。请注意,这不是最佳实践,因为带h/h的框可能来自道具,并且从根元素加载数据

常量框=Vue.componentbox{ 模板:{{boxWidth}}x{{boxHeight}}}, 资料{ 返回{ 箱宽:100, 箱高:100, }; }, 挂载:函数{ 这个。$el.addEventListenermouseup,这个.move; }, 方法:{ 移动{ 如果e.target==这个$el{ this.boxWidth=parseIntthis.$el.style.width; this.boxHeight=parseIntthis.$el.style.height; } } } }; 让应用程序=新Vue{ el:应用程序, 组件:{box:box}, }; 应用程序{ 显示器:flex; 证明内容:中心; 对齐项目:居中; 柔性包装:包装; } .调整大小{ 显示器:flex; 证明内容:中心; 对齐项目:居中; 保证金:5px; 宽度:100px; 高度:100px; 溢出:隐藏; 调整大小:两者; 背景色:C3E2CE; }
请原谅,我还在学习Vue。我建议你采用更多的模块化方法,提取盒子,然后循环你想要多少。请注意,这不是最佳实践,因为带h/h的框可能来自道具,并且从根元素加载数据

常量框=Vue.componentbox{ 模板:{{boxWidth}}x{{boxHeight}}}, 资料{ 返回{ 箱宽:100, 箱高:100, }; }, 挂载:函数{ 这个。$el.addEventListenermouseup,这个.move; }, 方法:{ 移动{ 如果e.target==这个$el{ this.boxWidth=parseIntthis.$el.style.width; this.boxHeight=parseIntthis.$el.style.height; } } } }; 让应用程序=新Vue{ el:应用程序, 组件:{box:box}, }; 应用程序{ 显示器:flex; 证明内容:中心; 对齐项目:居中; 柔性包装:包装; } .调整大小{ 显示器:flex; 证明内容:中心; 对齐项目:居中; 保证金:5px; 宽度:100px; 高度:100px; 溢出:隐藏; 调整大小:两者; 背景色:C3E2CE; }
要获得响应实际调整大小操作的即时反馈,您可能需要尝试使用。您可以将其连接到组件的参考点,并在那里侦听突变

您可以在mounted函数中附加MutationObserver。请确保还执行销毁函数中所需的任何清理

可调整大小的常数={ 模板:{{dims.width}}{{dims.height}}, 资料{ 返回{ 昏暗:{ 宽度:空, 高度:空 } }; }, 安装{ 常数{ 宽度 身高 }=此.$refs.main.getBoundingClientRect; this.dims.width=宽度; this.dims.height=高度; 常量mutationHandler=mutationList=>{ 突变列表的let突变{ if.type==属性{ 常数{ 宽度 身高 }=突变.target.getBoundingClientRect; this.dims.width=宽度; this.dims.height=高度; } } }; const mo=新的MutationObservermutationHandler; mo.observethis.$refs.main{ 属性:正确, 儿童名单:是的, 子树:真 }; }, 方法:{ 调整大小{ console.logResized; } } }; const app=新的Vue{ el:应用程序, 组成部分:{ 可调整大小:可调整大小 }, 资料{ 返回{ 项目:[ 福, 酒吧 起泡 ] } } }; 身体{ 背景色:4141; } .集装箱{ 显示器:flex; 对齐项目:居中; 证明内容:中心; } .调整大小{ 调整大小:两者; 保证金:5px; 宽度:100px; 高度:100px; 颜色:黑色; 溢出:滚动; 背景色:白色; 文本对齐:居中; }
要获得响应实际调整大小操作的即时反馈,您可能需要尝试使用。您可以将其连接到组件的参考点,并在那里侦听突变

您可以在mounted函数中附加MutationObserver。请确保还执行销毁函数中所需的任何清理

可调整大小的常数={ 模板:{{dims.width}}{{dims .height}}, 资料{ 返回{ 昏暗:{ 宽度:空, 高度:空 } }; }, 安装{ 常数{ 宽度 身高 }=此.$refs.main.getBoundingClientRect; this.dims.width=宽度; this.dims.height=高度; 常量mutationHandler=mutationList=>{ 突变列表的let突变{ if.type==属性{ 常数{ 宽度 身高 }=突变.target.getBoundingClientRect; this.dims.width=宽度; this.dims.height=高度; } } }; const mo=新的MutationObservermutationHandler; mo.observethis.$refs.main{ 属性:正确, 儿童名单:是的, 子树:真 }; }, 方法:{ 调整大小{ console.logResized; } } }; const app=新的Vue{ el:应用程序, 组成部分:{ 可调整大小:可调整大小 }, 资料{ 返回{ 项目:[ 福, 酒吧 起泡 ] } } }; 身体{ 背景色:4141; } .集装箱{ 显示器:flex; 对齐项目:居中; 证明内容:中心; } .调整大小{ 调整大小:两者; 保证金:5px; 宽度:100px; 高度:100px; 颜色:黑色; 溢出:滚动; 背景色:白色; 文本对齐:居中; }
简单的方法是使用简单的JS eventListener来更改局部变量

window.addEventListener('resize', this.getWindowWidth);

data() {
  return {
    windowWidth:0
  }
},
mounted () {
  this.$nextTick(function() {
    window.addEventListener('resize', this.getWindowWidth);
    this.getWindowWidth()
  })
},
methods: {
getWindowWidth() {
  this.windowWidth = document.documentElement.clientWidth
}
}
不要忘记删除组件销毁上的eventListener

beforeDestroy() {
  window.removeEventListener('resize', this.getWindowWidth);
}

简单的方法是使用简单的JS eventListener来更改局部变量

window.addEventListener('resize', this.getWindowWidth);

data() {
  return {
    windowWidth:0
  }
},
mounted () {
  this.$nextTick(function() {
    window.addEventListener('resize', this.getWindowWidth);
    this.getWindowWidth()
  })
},
methods: {
getWindowWidth() {
  this.windowWidth = document.documentElement.clientWidth
}
}
不要忘记删除组件销毁上的eventListener

beforeDestroy() {
  window.removeEventListener('resize', this.getWindowWidth);
}