原文地址: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. ueditor的用法

    今天做了一下百度富文本编辑器,遇到了一些问题,现在来总结一下: (1)jQuery没有引用,解决方法:引用jQuery并且放在所有的js前面 (2)没有报错,但是样式显示不出来.解决方法:css引用的 ...

  2. 分页(pagination)样式表

    ul { list-style: none; padding:; margin:; } .pagination{ display:inline-block; padding-left:; border ...

  3. zsh 缺省输入设置

    zsh 默认缺省方式和bash不兼容,终端输入指令带有* 并不能对所有以已经输入的部分作为开头的文件作处理,解决这个问题的方式是在.zshrc文件中加入 setopt no_match 即可

  4. Vue中通过v-for动态添加图片地址

    由于组件化问题,webpake在打包以后,src目录下的assets里面存放的img图片,路径已经更换.很多入坑的前端程序员在使用的时候,可能专破头也弄不清地址是什么个情况: 这里在使用vue-cli ...

  5. json&pickle模块

    序列化:我们把对象(变量)从内存中变成可存储或传输的过程称之为序列化 反序列化:把变量内容从序列化的对象重新读到内存中,这一过程称为反序列化 为什么要序列化? 1.持久保存状态 一个软件的执行就是在处 ...

  6. Java中栈的应用,括号匹配

    package edu.yuliang.Data_Structure_Basics; import org.omg.PortableInterceptor.SYSTEM_EXCEPTION; /* 给 ...

  7. epoll+socket实现 socket并发 linux服务器

    /* 实现功能:通过epoll, 处理多个socket * 监听一个端口,监听到有链接时,添加到epoll_event * xs */ #include <stdio.h> #includ ...

  8. ChIP-seq基本流程及工具

    ChIP-seq数据分析整理 1.Alignment 2.Peak detection 3.Peak annotation 1. GO analysis 2. Pathway analysis 4.D ...

  9. redis命令Sortedset 类型(八)

    Sortedset又叫zset Sortedset是有序集合,可排序的,但是唯一. Sortedset和set的不同之处, 是会给set中的元素添加一个分数,然后通过这个分数进行排序. 命令 1> ...

  10. UpdatePanel 控件,客户端事件生命周期踩坑

    <script type="text/javascript" language="javascript"> Sys.WebForms.PageReq ...