原文地址:http://www.cnblogs.com/xueweijie/p/6907676.html

<div id="app">
<input type="text" ref="input1"/>
<button @click="add">添加</button>
</div>
<script>
new Vue({
el: "#app",
methods:{
add:function(){
this.$refs.input1.value ="22"; //this.$refs.input1 减少获取dom节点的消耗
}
}
})
</script>

一般来讲,获取DOM元素,需document.querySelector(".input1")获取这个dom节点,然后在获取input1的值。

但是用ref绑定之后,我们就不需要在获取dom节点了,直接在上面的input上绑定input1,然后$refs里面调用就行。

然后在javascript里面这样调用:this.$refs.input1  这样就可以减少获取dom节点的消耗了

以下内容:

作者:该帐号已被查封
链接:http://www.jianshu.com/p/3bd8a2b07d57
來源:简书

看Vue.js文档中的ref部分,自己总结了下ref的使用方法以便后面查阅。

一、ref使用在外面的组件上

HTML 部分

1 <div id="ref-outside-component" v-on:click="consoleRef">
2 <component-father ref="outsideComponentRef">
3 </component-father>
4 <p>ref在外面的组件上</p>
5 </div>

js部分

 1     var refoutsidecomponentTem={
2 template:"<div class='childComp'><h5>我是子组件</h5></div>"
3 };
4 var refoutsidecomponent=new Vue({
5 el:"#ref-outside-component",
6 components:{
7 "component-father":refoutsidecomponentTem
8 },
9 methods:{
10 consoleRef:function () {
11 console.log(this); // #ref-outside-component vue实例
12 console.log(this.$refs.outsideComponentRef); // div.childComp vue实例
13 }
14 }
15 });

二、ref使用在外面的元素上

HTML部分

1 <!--ref在外面的元素上-->
2 <div id="ref-outside-dom" v-on:click="consoleRef" >
3 <component-father>
4 </component-father>
5 <p ref="outsideDomRef">ref在外面的元素上</p>
6 </div>

JS部分

 1    var refoutsidedomTem={
2 template:"<div class='childComp'><h5>我是子组件</h5></div>"
3 };
4 var refoutsidedom=new Vue({
5 el:"#ref-outside-dom",
6 components:{
7 "component-father":refoutsidedomTem
8 },
9 methods:{
10 consoleRef:function () {
11 console.log(this); // #ref-outside-dom vue实例
12 console.log(this.$refs.outsideDomRef); // <p> ref在外面的元素上</p>
13 }
14 }
15 });

三、ref使用在里面的元素上---局部注册组件

HTML部分

1 <!--ref在里面的元素上-->
2 <div id="ref-inside-dom">
3 <component-father>
4 </component-father>
5 <p>ref在里面的元素上</p>
6 </div>

JS部分

 1     var refinsidedomTem={
2 template:"<div class='childComp' v-on:click='consoleRef'>" +
3 "<h5 ref='insideDomRef'>我是子组件</h5>" +
4 "</div>",
5 methods:{
6 consoleRef:function () {
7 console.log(this); // div.childComp vue实例
8 console.log(this.$refs.insideDomRef); // <h5 >我是子组件</h5>
9 }
10 }
11 };
12 var refinsidedom=new Vue({
13 el:"#ref-inside-dom",
14 components:{
15 "component-father":refinsidedomTem
16 }
17 });

四、ref使用在里面的元素上---全局注册组件

HTML部分

1 <!--ref在里面的元素上--全局注册-->
2 <div id="ref-inside-dom-all">
3 <ref-inside-dom-quanjv></ref-inside-dom-quanjv>
4 </div>
 

JS部分

   
 1  Vue.component("ref-inside-dom-quanjv",{
2 template:"<div class='insideFather'> " +
3 "<input type='text' ref='insideDomRefAll' v-on:input='showinsideDomRef'>" +
4 " <p>ref在里面的元素上--全局注册 </p> " +
5 "</div>",
6 methods:{
7 showinsideDomRef:function () {
8 console.log(this); //这里的this其实还是div.insideFather
9 console.log(this.$refs.insideDomRefAll); // <input type="text">
10 }
11 }
12 });
13
14     var refinsidedomall=new Vue({
15 el:"#ref-inside-dom-all"
16 });

Vue.js中ref ($refs)用法举例总结的更多相关文章

  1. VUE -- vue.js中$watch的用法示例

    Vue.js 提供了一个方法 watch,它用于观察Vue实例上的数据变动.对应一个对象,键是观察表达式,值是对应回调.值也可以是方法名,或者是对象,包含选项. 在实例化时为每个键调用 $watch( ...

  2. vue.js中$watch的用法示例

    Vue.js 提供了一个方法 watch,它用于观察Vue实例上的数据变动.对应一个对象,键是观察表达式,值是对应回调.值也可以是方法名,或者是对象,包含选项. 在实例化时为每个键调用 $watch( ...

  3. vue.js中,input和textarea上的v-model指令到底做了什么?

    v-model是 vue.js 中用于在表单表单元素上创建双向数据绑定,它的本质只是一个语法糖,在单向数据绑定的基础上,增加了监听用户输入事件并更新数据的功能: 对,它本质上只是一个语法糖,但到底是一 ...

  4. vue.js中父组件触发子组件中的方法

    知识点:vue.js中,父组件的method中,触发子组件中的方法,获得子组件中的定义的属性 (1)子组件 : child_crud.js var html_child_crud= "< ...

  5. [转载]js中return的用法

    一.返回控制与函数结果,语法为:return 表达式; 语句结束函数执行,返回调用函数,而且把表达式的值作为函数的结果 二.返回控制,无函数结果,语法为:return;  在大多数情况下,为事件处理函 ...

  6. js中this的用法

    经过近几周的模拟面试题,我查询了一些资料,今天就来说说,在js中this的用法吧.方法有四:第一,用作全局变量,第二,用作表该对象,第三,用作构造函数,第四,用作call和applay

  7. JQuery之append和appendTo的区别,还有js中的appendChild用法

    JQuery之append和appendTo的区别 append()前面是要选择的对象,后面是要在对象内插入的元素内容 appendTo()前面是要插入的元素内容且为Jquery对象,而后面是要选择的 ...

  8. JS中event.keyCode用法及keyCode对…

    js中event.keyCode用法及keyCode对照表 标签: javascriptJavaScriptJavascriptjavaScript 2012-12-11 15:11 HTML Jav ...

  9. 实例分析Vue.js中 computed和methods不同机制

    在vue.js中,有methods和computed两种方式来动态当作方法来用的 1.首先最明显的不同 就是调用的时候,methods要加上() 2.我们可以使用 methods 来替代 comput ...

随机推荐

  1. Qt的类:qfileinfogatherer

    这篇文章中,探索Qt中的类qfileinfogatherer类,先给出私有类头文件.我们先想一想要形成一个信息采集者,需要什么?需要一个线程,当文件信息发生变化的时候,作为一个槽来接收信号. 先预备一 ...

  2. 【温故知新】HTTP请求GET和POST的用法和区别

    转自http://www.w3school.com.cn GET的使用 请注意,查询字符串(名称/值对)是在 GET 请求的 URL 中发送的: /test/demo_form.asp?name1=v ...

  3. 剑指Offer (汇总)

    刷完剑指Offer很久了,前几天想起来去年开通的博客园,正好把刷题笔记整理一下 刷题平台:牛客网 刷题语言:Python **链表(8道)** [剑指Offer 3. 从尾到头打印链表 (链表)](h ...

  4. css+jquery 实现图片局部放大预览

    今天有时间开始动手,使用css+jquery实现了图片局部放大的组件,首先看看效果图: 界面设计思路如下: 1.两个div,左边放图片的缩略图 2.在左边缩略图鼠标移动的时候,区域(效果图中的网格) ...

  5. 判断库中为字符串格式的时间是否为最近三个月(Java)

    今天分享一个问题,就是标题中提到的问题,今天在调用一个接口的时候,发现调用到的数据的时间格式为字符串类型,我有点蒙圈,于是,我就百度解决了这个问题,同时在这里记录一下,为了之后不再蒙圈::: 首先需要 ...

  6. linux下用命令安装node&pm2

    我的安装环境是腾讯云centos7操作系统,并且将安装包下载到了/usr/local/src目录下 一.下载node安装包 1.wget https://npm.taobao.org/mirrors/ ...

  7. notepad++取消语法检测

  8. 高吞吐低延迟Java应用的垃圾回收优化

    高吞吐低延迟Java应用的垃圾回收优化 高性能应用构成了现代网络的支柱.LinkedIn有许多内部高吞吐量服务来满足每秒数千次的用户请求.要优化用户体验,低延迟地响应这些请求非常重要. 比如说,用户经 ...

  9. python 读fnl数据

    (1) FNL 数据介绍 FNL((Final Operational Global Analysis)数据是美国国家环境预报中心(NECP)/美国国家大气研究中心(NCAR)提供的全球再分析资料,空 ...

  10. Tomcat服务器安装及配置

    一.JDK环境安装 1.tomcat服务器需要在已安装JDK的环境下才能正确安装并运行,首先到Java官网下载jdk 先同意协议,再下载对应的版本(我的系统是Windows10 64位) 2.下载完成 ...