首页 > 其他分享 >vue—ref属性

vue—ref属性

时间:2024-11-07 14:42:45浏览次数:1  
标签:vue components dom smoothing Student font ref 属性

原文链接:vue—ref属性 – 每天进步一点点

 

在vue中ref属性基本有两个作用,一个是获取dom元素,另一个是获取组件实例化对象。

初始页面和初始代码如下:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 <template>   <div id="app">     <img alt="Vue logo" src="./assets/logo.png">     <h1 v-text="msg"></h1>     <Student></Student>   </div> </template>   <script>   import Student from './components/Student'   export default {   name: 'App',   components: {         Student   },   data() {     return {       msg:'欢迎'     }   }, } </script>   <style> #app {   font-family: Avenir, Helvetica, Arial, sans-serif;   -webkit-font-smoothing: antialiased;   -moz-osx-font-smoothing: grayscale;   text-align: center;   color: #2c3e50;   margin-top: 60px; } </style>
1.获取dom元素

获取dom元素的方法很简单,比如我们可以用最原始的 方法获取dom

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 <template>   <div id="app">     <img alt="Vue logo" src="./assets/logo.png">     <h1 v-text="msg" id='h1'></h1>     <button @click="showDom">点击我输出dom元素</button>     <Student></Student>   </div> </template>   <script>   import Student from './components/Student'   export default {   name: 'App',   components: {         Student   },   data() {     return {       msg:'欢迎'     }   },   methods: {     showDom(){       console.log(document.getElementById('h1'))     }   }, } </script>   <style> #app {   font-family: Avenir, Helvetica, Arial, sans-serif;   -webkit-font-smoothing: antialiased;   -moz-osx-font-smoothing: grayscale;   text-align: center;   color: #2c3e50;   margin-top: 60px; } </style>

这种最原始的方法可以将dom元素输出。

我们也可以用ref的方法进行操作,这是vue给我们提供的方法

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 <template>   <div id="app">     <img alt="Vue logo" src="./assets/logo.png">     <h1 v-text="msg" ref="h1"></h1>     <button @click="showDom">点击我输出dom元素</button>     <Student></Student>   </div> </template>   <script>   import Student from './components/Student'   export default {   name: 'App',   components: {         Student   },   data() {     return {       msg:'欢迎'     }   },   methods: {     showDom(){       console.log(this.$refs.h1)     }   }, } </script>   <style> #app {   font-family: Avenir, Helvetica, Arial, sans-serif;   -webkit-font-smoothing: antialiased;   -moz-osx-font-smoothing: grayscale;   text-align: center;   color: #2c3e50;   margin-top: 60px; } </style>

2.获取组件实例对象

我们除了可以操作现有的标签,还可以操作我们自己创建的组件,比如上一篇文章创建的student组件,

我们将ref 属性加入到这个组件中,就可以输出整个组件的实例对象了,这个在后面的组件之间的通信有作用。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 <template>   <div id="app">     <img alt="Vue logo" src="./assets/logo.png">     <h1 v-text="msg" ref="h1"></h1>     <button @click="showDom">点击我输出dom元素</button>     <Student ref="stu"></Student>   </div> </template>   <script>   import Student from './components/Student'   export default {   name: 'App',   components: {         Student   },   data() {     return {       msg:'欢迎'     }   },   methods: {     showDom(){       console.log(this.$refs.stu)     }   }, } </script>   <style> #app {   font-family: Avenir, Helvetica, Arial, sans-serif;   -webkit-font-smoothing: antialiased;   -moz-osx-font-smoothing: grayscale;   text-align: center;   color: #2c3e50;   margin-top: 60px; } </style>

 

标签:vue,components,dom,smoothing,Student,font,ref,属性
From: https://www.cnblogs.com/longkui-site/p/18532228

相关文章

  • vue-props配置
    原文链接:vue-props配置–每天进步一点点1.props作用props主要用于组件实例对象之间传递参数,比如我们前面创建的student组件,我们在组件中让他显示一些信息,比如下面这样:Student组件如下:1234567891011121314151617181920<template>  <div> ......
  • gantt-elastic(vue甘特图)
    安装gantt-elastic与gantt-elastic-headernpminstall--savegantt-elasticnpminstall--savegantt-elastic-header//项目里面没有安装dayjs的话还需要安装一下,因为他官网的例子用到了npminstalldayjs--save//项目里面安了less-loader可能会报错//less-loader版......
  • 基于SpringBoot+Vue的网上超市设计与实现
    前言网络技术和计算机技术发展至今,已经拥有了深厚的理论基础,并在现实中进行了充分运用,尤其是基于计算机运行的软件更是受到各界的关注。加上现在人们已经步入信息时代,所以对于信息的宣传和管理就很关键。因此超市商品销售信息的管理计算机化,系统化是必要的。设计开发网上超......
  • 基于springboot+vue的毕业生实习与就业管理系统的设计与实现
    前言使用旧方法对毕业生实习与就业管理系统的信息进行系统化管理已经不再让人们信赖了,把现在的网络信息技术运用在毕业生实习与就业管理系统的管理上面可以解决许多信息管理上面的难题,比如处理数据时间很长,数据存在错误不能及时纠正等问题。这次开发的毕业生实习与就业管理......
  • ssm066农家乐信息平台的设计与实现+vue(论文+源码)_kaic
    毕业设计(论文)题目:农家乐信息平台的设计与实现      摘 要互联网发展至今,无论是其理论还是技术都已经成熟,而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播,搭配信息管理工具可以很好地为人们提供服务。针对农家乐信息管理混乱,出错率高,信息安......
  • DICOM标准:DICOM图像核心属性概念详解——关于参考帧、病人位置、病人方位、图像位置和
    目录1、参考帧模块属性2、模态(Modality):3、病人位置(PatientPosition):4、病人方位(PatientOrientation):5、 图像位置和图像方向:6、切片位置7、图像像素模块7.1  图像像素属性描述7.1.1 每个像素的样本7.1.2光度解释7.1.3平面结构7.1.4像素数据1、参......
  • 前端Vue自定义个性化三级联动自定义简洁中国省市区picker选择器
    一、 前端组件概述前端组件开发在现代前端开发中占据着至关重要的地位。随着互联网的快速发展,前端应用的规模和复杂性不断增加,传统的开发方式已经难以满足需求。前端组件开发应运而生,成为提高开发效率、代码可维护性和可复用性的关键手段。二、 组件化的重要性通过将复......
  • 基于SpringBoot + Vue的在线考试系统(角色:学生、教师、管理员)
    文章目录前言一、详细操作演示视频二、具体实现截图三、技术栈1.前端-Vue.js2.后端-SpringBoot3.数据库-MySQL4.系统架构-B/S四、系统测试1.系统测试概述2.系统功能测试3.系统测试结论五、项目代码参考六、数据库代码参考七、项目论文示例结语前言......
  • (开题报告)django+vue天天鲜超市线上购物系统源码+论文
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容选题背景关于线上购物系统的研究,现有研究主要以综合性大型电商平台为主,专门针对天天鲜超市这种特定场景下的线上购物系统的研究较少。在国内外,线上......
  • 从 vue 源码看问题 — vue 中的 render helper 是什么?
    前言前面的文章中提到组件更新时,需要先执行编译器生成的渲染函数得到组件的vnode,而渲染函数生成vnode则是通过其中的_c、_l、、_v、_s等方法实现的.比如:普通节点被编译成了可执行_c函数v-for节点被编译成了可执行的_l函数…那么下面就一起来了解一下,什么......