原文地址: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. 马凯军201771010116《面向对象与程序设计Java》第十二周学习总结

    一.理论与知识学习部分 Java的抽象窗口工具箱(Abstract Window Toolkit, AWT)包含在java.awt包中,它提供了许多用来设计GUI的组件类和容器类. 大部分AWT组件都 ...

  2. Real time profiler for Delphi applications

    xalion提供的资源,这么强,还是免费的,快去试用!   ✓  Detailed debug information (internal, TDS, MAP) ✓  Display informat ...

  3. hive防止数据被误删除

    1.HDFS层面开启trash功能(fs.trash.interval) 被删除的数据在HDFS中的/user/$USER/.Trash目录中,开启这个功能秩序要将配置属性fs.trash.inter ...

  4. idea添加JPA导出实体类

    https://blog.csdn.net/liu_yulong/article/details/72910588

  5. github项目

    一.github项目地址: https://github.com/fairy1231/gitLearning/tree/master 二.github的重要性: Git 是一个快速.可扩展的分布式版本 ...

  6. jQuery-3.事件篇---自定义事件

    jQuery自定义事件之trigger事件 众所周知类似于mousedown.click.keydown等等这类型的事件都是浏览器提供的,通俗叫原生事件,这类型的事件是需要有交互行为才能被触发. 在j ...

  7. 浅谈MVC中的service层(转)

    概述 mvc框架由model,view,controller组成,执行流程一般是:在controller访问model获取数据,通过view渲染页面. mvc模式是web开发中的基础模式,采用的是分层 ...

  8. vue 安装

    安装cnpm npm install -g cnpm --registry=https://registry.npm.taobao.org 安装 vue.js cnpm install -g vue- ...

  9. flask 手机号码正则匹配的简单操作

    1 导包 Import re 2 匹配邮箱 ret=re.match("[a-zA-Z0-9]{4,20}@163\.com",字符串) If ret: print(ret.gro ...

  10. div 隐藏显示各种例子

    <html><head><title>jquery show()</title><script type="text/javascrip ...