返回顶部
首页 > 资讯 > 精选 >vuejs里如何获取dom
  • 681
分享到

vuejs里如何获取dom

2023-06-25 13:06:56 681人浏览 独家记忆
摘要

本篇内容主要讲解“Vuejs里如何获取dom”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vuejs里如何获取dom”吧!vuejs获取dom的方法:1、在组件的DOM部分,任意标签中写上“re

本篇内容主要讲解“Vuejs里如何获取dom”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vuejs里如何获取dom”吧!

vuejs获取dom的方法:1、在组件的DOM部分,任意标签中写上“ref="xxx"”;2、通过组件对象“this.$refs.xxx”获取到元素即可。

vuejs里如何获取dom

本文操作环境:windows7系统、vue2.9.6版,DELL G3电脑。

vue.js实例学习:获取DOM元素

一、获取DOM元素

在Vue中获取DOM元素,我们可以用ref

用法(和React一样):
(1)在组件的DOM部分,任意标签中 写上:ref="xxx"
(2)通过组件对象 this.$refs.xxx 获取到元素

1、获取html标签的DOM
例1:
<div id="app"></div><script type="text/javascript">  let App = {    template: `      <div>        <button ref="btn">我是按钮</button>          </div>`,    beforeCreate() {      //这里不能操作数据      console.log('beforeCreate: ', this.$refs.btn);    },    created() {      //这里可以操作数据了      console.log('created: ', this.$refs.btn);    },    beforeMount() {      //new Vue 发生装载, 替换 <div id="app">之前      console.log('beforeMount: ', this.$refs.btn);    },    mounted() {      //装在数据之后      console.log('mounted: ', this.$refs.btn);    },   };  new Vue({    el: '#app',    components: {      app: App    },    template: `<app />`,  });</script>

控制台输出:
vuejs里如何获取dom
说明:mounted()时才能获取this.$refs.btn


2、获取组件的DOM
例2:
<div id="app"></div><script type="text/javascript">  let Temp = {    template: `      <div>我是子组件</div>    `,  };  let App = {    components: {      temp: Temp,    },    template: `<temp ref="tmp"/>`,    mounted() {      console.log(this.$refs.tmp);    },  };  let vm = new Vue({    el: '#app',    components: {      app: App    },    template: `<app />`,  });</script>

控制台输出:
vuejs里如何获取dom
我们看到控制台输出 temp组件
这里我们要关注的是 组件的 各个属性(eg: $ el、$ parent 等)···

假如我们把console.log(this.$refs.tmp)改为:

console.log(this.$refs.tmp.$el);

控制台会输出下图,由此可知 $el 代表着什么~
vuejs里如何获取dom

总结
  • $parent: 获取当前组件的父组件

  • $children:················ 的子组件

  • $root:获取new Vue的实例 (即上面的:vm)

  • $el: 获取当前组件的DOM元素


二、给DOM元素添加事件的特殊情况

例:

要求:在显示input元素的瞬间,获取input的焦点

<div id="app"></div><script type="text/javascript">  let App = {    template: `      <div>        <input type="text" v-if="isshow" ref="myInput" />      </div>`,    data() {      return {        isShow: false,      };    },    mounted() {      this.isShow = true;    //显示input元素      this.$refs.myInput.focus();  //获取input的焦点    },     };  let vm = new Vue({    el: '#app',    components: {      app: App    },    template: `<app />`,  });</script>

运行后报错:
vuejs里如何获取dom
报错显示focus不存在,原因是 this.$refs.myInput 也是undefined,为什么ref没获取到DOM元素呢?

我们先思考,如果我们把mounted函数内改成:

mounted() {      this.isShow = true;        this.isShow = false;        this.isShow = true;  },

运行过程中,input元素会 先显示,再消失,然后再显示吗?
答案是否定的。因为Vue会先让代码执行完,然后才会根据最终的值,进行DOM操作。 其实上面的代码等同于下面的代码:

mounted() {      this.isShow = true;  },

那么怎么解决呢?

这里我们用 $nextTick解决~


vm.$nextTick

什么时候用:在Vue渲染DOM到页面后 立即做某件事,用$nextTick

this.$nextTick(function() {   ·····dosomething})

修改版:
let App = {  template: `    <div>      <input type="text" v-if="isShow" ref="myInput" />    </div>`,  data() {    return {      isShow: false,    };  },  mounted() {    //显示input元素的瞬间,获取焦点    this.isShow = true;    this.$nextTick(function() {      this.$refs.myInput.focus();      });  },  };let vm = new Vue({  el: '#app',  components: {    app: App  },  template: `<app />`,});

到此,相信大家对“vuejs里如何获取dom”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: vuejs里如何获取dom

本文链接: https://lsjlt.com/news/304844.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • vuejs里如何获取dom
    本篇内容主要讲解“vuejs里如何获取dom”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vuejs里如何获取dom”吧!vuejs获取dom的方法:1、在组件的DOM部分,任意标签中写上“re...
    99+
    2023-06-25
  • vuejs如何加dom
    这篇文章给大家分享的是有关vuejs如何加dom的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。vuejs加dom的方法:1、先new创建一个实例;2、手动挂载到dom节点中;3、使用“$appendTo/$bef...
    99+
    2023-06-25
  • 怎么解决vuejs获取不到dom问题
    这篇文章主要介绍“怎么解决vuejs获取不到dom问题”,在日常操作中,相信很多人在怎么解决vuejs获取不到dom问题问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么解决vuejs获取不到dom问题”的疑...
    99+
    2023-06-25
  • JavaScript DOM如何获取
    本篇内容主要讲解“JavaScript DOM如何获取”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JavaScript DOM如何获取”吧!什么是 DOM ?...
    99+
    2024-04-02
  • JavaScript如何获取DOM元素
    小编给大家分享一下JavaScript如何获取DOM元素,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!方法:1、用getElementById方法通过ID获取;2...
    99+
    2023-06-14
  • vue如何获取dom元素
    这篇文章将为大家详细讲解有关vue如何获取dom元素,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。vue获取dom元素的方法:1、给相应的dom元素加id,使用“document.getElementBy...
    99+
    2023-06-25
  • DOM中如何获取元素
    这篇文章将为大家详细讲解有关DOM中如何获取元素,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。概述DOM (Document objectModal) :文档对象模型。DOM:是浏览器提供的(浏览器特有)...
    99+
    2023-06-27
  • Vue中如何获取DOM元素
    今天小编给大家分享一下Vue中如何获取DOM元素的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。dom是一种文档对象模型,同时...
    99+
    2023-07-04
  • 如何在HTML中获取DOM元素
    如何在HTML中获取DOM元素?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1.利用querySelectorAll()方法   返回文档中匹配指定...
    99+
    2023-06-14
  • vuejs怎么获取元素
    这篇文章主要讲解了“vuejs怎么获取元素”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vuejs怎么获取元素”吧!vuejs获取元素的方法:1、打开相应的代码文件;2、给元素绑定“ref=...
    99+
    2023-06-25
  • Vue nextTick如何获取更新后的DOM的实现
    这篇文章将为大家详细讲解有关Vue nextTick如何获取更新后的DOM的实现,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。前两天在开发时遇到一个需求:打开对话框的时候自动聚焦其...
    99+
    2023-06-28
  • 小程序获取dom信息
    官方文档 SelectorQuery 应用 1、创建选择器 const query = wx.createSelectorQuery(); 将选择器的选取范围更改为自定义组件compo...
    99+
    2023-09-16
    小程序
  • JavaScript中如何利用DOM节点获取页面元素
    本文小编为大家详细介绍“JavaScript中如何利用DOM节点获取页面元素”,内容详细,步骤清晰,细节处理妥当,希望这篇“JavaScript中如何利用DOM节点获取页面元素”文章能帮助大家解决疑惑,下面...
    99+
    2024-04-02
  • 如何在Vue中获取DOM元素的实际宽高
    目录前言一、获取元素二、获取元素宽高补充:vue项目获取dom元素宽高总是不准确总结前言 最近使用 D3.js 开发可视化图表,因为移动端做了 rem 适配,所以需要动态计算获取图表...
    99+
    2024-04-02
  • javascript中怎么获取dom元素
    这篇文章给大家分享的是有关javascript中怎么获取dom元素的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 获取方法:1、“document.g...
    99+
    2024-04-02
  • Python的dom节点怎么获取
    本文小编为大家详细介绍“Python的dom节点怎么获取”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python的dom节点怎么获取”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。1. dom节点1.1 dom...
    99+
    2023-06-28
  • DOM XPATH获取img src值的query
    复制代码 代码如下:$nodes = @$xpath->query("//*[@id='main_pr']/img/@src");$prurl = $nodes->ite...
    99+
    2022-11-15
    DOM img src
  • 详解React获取DOM和获取组件实例的方式
    目录React获取DOM的方式ref获取DOM元素ref获取组件实例React获取DOM的方式 ref获取DOM元素 在React的开发模式中,通常情况下不需要、也不建议直接操作DO...
    99+
    2024-04-02
  • 怎么在JQuery中获取DOM元素
    在JQuery中使用get方法获取DOM元素:1.get(),获取包含jQuery对象中所有DOM元素的数组;2.get(index),获取jQuery对象中拥有指定索引的DOM元素;具体方法如下:使用get()方法获取JQuery中get...
    99+
    2024-04-02
  • 怎么在HTML中获取DOM元素
    怎么在HTML中获取DOM元素?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1.getElementById() 方法返回对拥有指定 id 的第一个对象的引用<!DOCT...
    99+
    2023-06-14
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作