Vue 3 中动态获取高宽

这篇具有很好参考价值的文章主要介绍了Vue 3 中动态获取高宽。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

应用场景: 一般用于父组件动态变换宽高,子组件需要同步修改宽高

实现简介 : Vue3 写法

思路:

1.监听父组件的 宽高

2.将监听到的高度赋给 你需要设置的对象


   :: 引入监听 并实现 如何得到动态宽度 (此时的 div2 会与 divDom  宽度会保持一致)


<template>
    <div ref="divDom"></div> //你可以手动或者换成可拖拉伸缩的盒子
    <div ref= "div2" :style="{'width':leftShowWith.with}"></div>
</template>
 

第一种  获取方式
<script setup>
import {useResizeObserver} from "@vueuse/core";


const divDom =ref();
const leftShowWith  = reactive({
  with:'500px'
});

useResizeObserver(divDom , (entries) => {
  const entry = entries[0]
  const { width, height } = entry.contentRect
  console.log(`width: ${width}, height: ${height}`)
  console.log(`${width}px`)
  leftShowWith.with = `${width}px`;
})
</script>

一些补充的知识

1、了解 如何获取组件的对象 



<template>
    <div ref="divDom"></div>
</template>
 

第一种  获取方式
<script setup>
    import { ref, getCurrentInstance } from 'vue';
    
    const divDom = ref(null);
    onMounted(()=>{
        console.log('获取dom元素',divDom)
    })
 
    // 获取页面的实例对象
    const pageInstance = getCurrentInstance();
    // 获取dom节点对象
    const tagDomObj = pageInstance.refs.divDom;
 
</script>

第一种  获取方式
<script setup>
const divDom =ref();
</script>

2、了解 如何获取元素中的宽高文章来源地址https://www.toymoban.com/news/detail-538800.html

<div ref="init"></div> 
写在 页面 方法 部分
这里的 offsetHeight 是返回元素的宽度(包括元素宽度、内边距和边框,不包括外边距)
let height= this.$refs.init.$el.offsetHeight;  
let height= divDom.VALUE.$el.offsetHeight;   // 在Vue3 中的写法

这里的offsetHeight可以替换,用来获取其他的属性
offsetWidth       //返回元素的宽度(包括元素宽度、内边距和边框,不包括外边距)
offsetHeight      //返回元素的高度(包括元素高度、内边距和边框,不包括外边距)
clientWidth        //返回元素的宽度(包括元素宽度、内边距,不包括边框和外边距)
clientHeight       //返回元素的高度(包括元素高度、内边距,不包括边框和外边距)
style.width         //返回元素的宽度(包括元素宽度,不包括内边距、边框和外边距)
style.height       //返回元素的高度(包括元素高度,不包括内边距、边框和外边距)
scrollWidth       //返回元素的宽度(包括元素宽度、内边距和溢出尺寸,不包括边框和外边距),无溢出的情况,与clientWidth相同
scrollHeigh       //返回元素的高度(包括元素高度、内边距和溢出尺寸,不包括边框和外边距),无溢出的情况,与clientHeight相同
除此之外,还可以获取带有单位的数值
let height = window.getComputedStyle(this.$refs.init).height; 
这样获取的值是有单位的。

到了这里,关于Vue 3 中动态获取高宽的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vue3获取页面路径

    2024年02月08日
    浏览(38)
  • vue3 动态添加路由刷新后页面丢失(白屏)问题

    动态添加路由操作一般是用vuex或者Pinia封装,在登录页面调用 如果出现刷新页面丢失有两种可能: 1:vuex或者Pinia没有做持久化处理 2:动态添加路由需要在main.ts里面也调用一次 不需要路由守卫即可实现 注意:必须要在页面挂载前还有路由配置完成前调用添加,不然还是丢

    2024年02月16日
    浏览(50)
  • Vue3 —— 在vue中动态引入组件以及动态引入js的方法

    文章目录 一 、 动态引入组件 1. 具体写法 二、 动态引入js文件 1. 具体写法 总结 定义一个异步组件,它在运行时是懒加载的。参数可以是一个异步加载函数,或是对加载行为进行更具体定制的一个选项对象。 在大型项目中,我们可能需要拆分应用为更小的块,并仅在需要时

    2024年02月12日
    浏览(41)
  • Vue3解决Vuex异步获取数据,页面先渲染问题

    在vuex中异步请求数据,页面获取vuex中的数据渲染页面时,数据还未返回时,页面还未渲染。 解决方法: 在数据还未返回时,先不渲染页面结构,使用骨架屏等待数据请求 等待数据返回之后,设置isShow为true,同时重新渲染页面 完美解决Vue3数据异步获取为完成,页面提前渲

    2024年02月11日
    浏览(43)
  • vue3创建和获取循环动态ref

    定义如下: 然后在需要循环赋值ref的元素上使用setRef,具体如下 此时每个元素的值便都存boxRefs数组中了,使用方法和使用数组无异,如下

    2024年02月16日
    浏览(34)
  • Vue3前端h5移动端页面预览PDF使用pdfjs-dist,添加自定义文本水印

    pnpm i pdfjs-dist@2.5.207

    2024年01月18日
    浏览(66)
  • vue3+antd——实现App.vue页面实时获取权限+用户信息的功能——基础积累

    之前写过一篇文章关于vue3+antd的框架模板,链接如下:http://t.csdn.cn/9dZMS 下面针对 App.vue 页面实时获取权限+用户信息的功能做一下记录 重要的代码如下: 通过 computed 计算属性进行用户信息的实时监听,用户信息更改时也会重新触发user参数的变化,最终导致user内容保持为最

    2024年02月14日
    浏览(29)
  • Vue3——getCurrentInstance、页面中route和router的获取方式

    getCurrentInstance() 在vue2中,可以通过this来获取组件实例,但是在vue3的setup函数中,无法通过this获取到组件实例,在setup函数中this的值是undefined,但是vue3提供了getCurrentInstance()来获取组件的实例对象; 输出结果:  可以看出,getCurrentInstance是一个方法,getCurrentInstance()是一个对

    2024年02月15日
    浏览(31)
  • vue3引入JS-SDK实现h5分享小卡片、跳转微信小程序功能

    微信js-sdk官方文档: https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html 想要实现的效果: 1.登录微信公众平台,进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。 2.通过npm引入js-sdk 安装成功后,可以在package.json中找到\\\"weixin-js-sdk\\\" 3.在main.js中,将js-sdk挂载

    2024年02月11日
    浏览(50)
  • Vue3通过JS修改Css样式(附节点获取相关知识)

    方法一:通过获取节点style(获取标签节点) 方法二:通过动态设置class 方法三:直接动态设置style  附节点获取相关知识

    2024年02月16日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包