vue3获取元素并修改元素样式

news2024/11/20 8:27:48

🔥🔥🔥欢迎关注csdn前端领域博主: 前端小王hs

🔥🔥🔥email: 337674757@qq.com

🔥🔥🔥前端交流群: 598778642

需求:获取元素的样式并且修改元素样式

主要应用场景:点击元素后样式变化

在项目开发中,经常会遇到一些改变样式的操作,不同于一般点击进行数字的变化,对样式的改变需要获取元素的style,笔者浏览了目前论坛上的些许文章,大部分都是基于vue2的操作,本篇博客叙述在vue3的条件下进行获取元素并修改样式,主要涉及的API有ref和nextTick

操作主要分为如下几个部分,文章最后附完整的代码框架
①在要操作的元素上绑定ref

<div ref='div' style='width:'50px'>

②在script部分导入ref和nextTick

import { ref,nextTick} from 'vue'

③在script部分使得要操作的元素响应式即绑定ref

const div = ref()

④利用async await和nextTick

//需要在元素绑定函数a 这里忽略
async function a () {
  
  await nextTick()
  
  div.value.style.width="100px"

难点是在于为什么要使用async await和nextTick

如果不这样使用的话,会报错:parameter 1 is not of type ‘Element’
这个报错的原因大意是操作者在操作还没渲染的元素,或者说是想要操作的样式还没有对应的元素出现

那我们学习了vue3之后,懂得在nextTick后Dom已经更新,所以通过结合async await和nextTick可以使得元素在渲染过后进行有效的修改
下图来自vue3官方文档
nextTick的用法

完整操作示例代码:

<template>
	<div ref='div' style='width:'50px'>
</template>

<script setup>
import { ref,nextTick} from 'vue'

const div = ref()
async function a () {
  
  await nextTick()
  
  div.value.style.width="100px"
 }
</script>

如有问题可私信博主或联系337674757@qq.com

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/408964.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

猿创征文|我的前端学习之旅【来自一名大四老学长的真情流露】

猿创征文 | 我的前端学习之旅自我介绍我浑噩的大一大二&#xff08;是不是另一个你&#xff09;我的大三生活大三上&#xff08;学习过程、学习方法、推荐网站&#xff09;大三下&#xff08;技术提升、荣誉证书、推荐比赛&#xff09;我与 CSDN 的机缘&#xff08;从小白到创作…

【微信小程序】视图容器和基本内容组件

开发者可以通过运用组件快速搭建出页面结构&#xff0c;上一章也有对组件进行介绍&#xff0c;那么本文牛牛就来带大家学习小程序的组件。 我们可以将组件理解为微信内嵌的标签&#xff0c;它在小程序承担的作用与HTML的标签一致&#xff0c;不过组件的功能更加多样、具体。 事…

如何在UNI-APP内开发微信公众号(H5)JSSDK

参考文章 UNI-APP 开发微信公众号&#xff08;H5&#xff09;JSSDK 的使用方式 微信内H5使用JSSDK分享&#xff01;&#xff01;&#xff01;注意目前Hbuilderx2.3.7版本存在问题&#xff01;&#xff01;&#xff01; vue-router与location.href的用法区别 微信网页开发 JSSDK…

近四十场面试汇聚成的超全Web服务器面经总结

上期写了简历项目链接简历项目烂大街怎么办&#xff1f;教你最有谱的摆烂&#xff0c;有位读者照做以后&#xff0c;拿下了主管面&#xff0c;在群里宣传以后&#xff0c;最近多了不少小伙伴来催我更新服务器项目相关知识点。 这份总结是我之前秋招的时候&#xff0c;根据每次…

JS的事件介绍

JS的事件介绍 JS&#xff08;JavaScript&#xff09;是基于对象&#xff08;Object-based&#xff09;、事件驱动的脚本语言。 JS事件&#xff0c;就是用户或浏览器本身的某种行为&#xff0c;一般是用户对页面的一些动作引起的&#xff0c;例如&#xff0c;单击某个链接或按…

分享5款实用且免费的软件,让你轻松地完成任务

在日常工作和生活中&#xff0c;使用一些实用的小巧工具软件可以提高效率&#xff0c;让你更轻松地完成任务。 1.图像编辑——Paint.NET Paint.NET是一款免费的图像编辑软件&#xff0c;具有多种高级功能和插件支持。它支持多种文件格式、层、魔术棒、文本、画笔、形状、调整…

【C#+JavaScript+SQL Server】实现Web端在线考试系统 五:考试模块设计(附源码和资源)

需要源码请点赞关注收藏后评论区留言私信~~~ 一、考试模块概述 在线考试系统中的考试模块主要包括阅读考试规则&#xff0c;选择考试科目&#xff0c;随机抽取试题&#xff0c;答题计时器以及自动交卷并评分等功能 在开发考试系统过程中&#xff0c;需要考虑的一点是如何将试…

前端工程化详解——理解与实践前端工程化

前言&#xff1a; 前端工程化一直是一个老生常谈的问题&#xff0c;不管是面试还是我们在公司做基建都会经常提到前端工程化&#xff0c;那么为什么经常会说到前端工程化&#xff0c;并没有听过后端工程化、Java工程化或者Python工程化呢&#xff1f;我们理解的前端工程化是不是…

uniappvideo避坑指南(H5、小程序、app)

今天写下这篇文章已是蓄谋已久了&#xff0c;背景是年初接到项目需求开发基于H5运行的视频学习平台&#xff0c;以及后来uniapp转小程序app开发。相信开发过uniapp的video应该或多或少都遇到过一些坑&#xff0c;开场就不多说了&#xff0c;直接上干货。 项目要求用户不得拖动…

vue3引入router

1.添加vue-router依赖 进入项目路径的cmd下&#xff0c;执行命令 npm install vue-router4 或者yarn add vue-router4 推荐使用yarn命令&#xff0c;比npm安装更快 2.执行npm install重新加载依赖 3.在src文件夹下创建一个router文件夹 4.在router文件夹下创建index.js文件&…

JavaScript核心技术之JSON详解

JSON是什么&#xff1f; JSON&#xff08;JavaScript Object Notation, JS对象简谱&#xff09;是一种轻量级的数据交换格式。它基于 ECMAScript&#xff08;European Computer Manufacturers Association, 欧洲计算机协会制定的js规范&#xff09;的一个子集&#xff0c;采用…

undetected_chromedriver的使用

undetected_chromedriver是专门针对浏览器识别做出来的拓展 直接使用undetected_chromedriver第三方库 if __name__ __main__:from selenium import webdriverfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.support.ui import WebDriverWaitfrom sel…

前端数据加密的几种方式

1.base64加密方式 1.1 base64是什么&#xff1f; Base64&#xff0c;顾名思义&#xff0c;就是包括小写字母a-z、大写字母A-Z、数字0-9、符号""、"/"一共64个字符的字符集&#xff0c;&#xff08;另加一个“”&#xff0c;实际是65个字符&#xff0c;至…

Access-Control-Allow-Origin跨域解决及详细介绍

首先&#xff0c;跨域不是问题。是一种安全机制。 这是你在开发时、上线前就必须提前考虑到的安全问题并且采取合适的手段去避免这个问题带来的程序错误。不过通常情况下&#xff0c;前端开发的小伙伴们都非常坚信后端小伙伴的接口一定已经处理好了跨域这个需求。然而事实上许多…

JavaWeb 项目 --- 表白墙 和 在线相册

文章目录一. 案例: 表白墙 (使用模板引擎)1. 首先创建 maven 项目2. 创建好模板文件3. 使用数据库存储数据.创建一个类用于数据库连接4. 使用 监视器 来初始化 Thymeleaf5. 编写 Servlet 代码① 重写 doGet 方法② 重写 doPost 方法③ 实现 load 方法④ 实现 save 方法6. 注意事…

Vue中key的作用及原理

1. 先说结论 key在Vue是DOM对象的标识&#xff1b;进行列表展示时&#xff0c;默认key是index&#xff1b;如果数据只做展示使用&#xff0c;使用index作为key是没有任何问题的&#xff1b;如果使用index作为key&#xff0c;而后续操作会破坏顺序&#xff0c;一定会带来效率问…

vue3 antd table表格样式修改——使用rowClassName更改某行数据的样式

vue3 antd项目实战——修改ant design vue组件中table表格的默认样式&#xff08;二&#xff09;知识调用场景复现修改table表格的行样式一、rowClassName添加行样式二、表格的不可控操作写在最后知识调用 文章中可能会用到的知识链接vue3ant design vuets实战【ant-design-vu…

解决:在 VSCode 中如何设置默认的浏览器为Chrome或Firefox

1、问题描述&#xff1a; 在 VSCode 编辑器中&#xff0c;其一般默认打开的浏览器是 IE 浏览器&#xff0c;而我已经习惯使用 Chrome 浏览器&#xff0c;以及会遇到页面的调试等不同的问题&#xff0c;因此需要将 VSCode 的默认浏览器调整为 Chrome 浏览器&#xff1b; 2、操…

【web前端开发】超详细讲解CSS盒子模型

文章目录1.盒子模型介绍2.内容3.边框4.内边距5.⭐盒子大小计算6.⭐内减模式7.外边距外边距的合并外边距的塌陷行内元素的垂直外边距8.⭐清除默认样式9.⭐版心居中1.盒子模型介绍 所有HTML元素可以看作盒子,CSS盒模型本质上是一个盒子&#xff0c;封装周围的HTML元素&#xff0c…

使用Vue来完成项目中的首页导航+左侧菜单

目录 1. 准备工作 2. 动态树 2.1 在配置请求路径 2.2 使用动态数据构建导航菜单 2.2.1 通过接口获取数据 2.2.3 通过后台获取的数据构建菜单导航 2.3 点击菜单实现路由跳转 2.3.1 创建书本管理组件 2.3.2 配置路由 2.3.3 修改LeftAside组件 2.3.4 修改Main组件 3. …