当前位置:首页 > 日记 > 正文

vue.js 1.x与2.0中js实时监听input值的变化

vue.js 1.x与2.0中js实时监听input值的变化

一、vuejs 2.0中js实时监听input

在2.0的版本中,vuejs把v-el 和 v-ref 合并为一个 ref 属性了,可以在组件实例中通过 $refs 来调用。这意味着 v-el:my-element 将写成这样: ref="myElement" v-ref:my-component 变成了这样: ref="myComponent" 。绑定在一般元素上时,ref 指DOM元素,绑定在组件上时,ref 为一组件实例。

因为 v-ref 不再是一个指令了而是一个特殊的属性,它也可以被动态定义了。这样在和v-for 结合的时候是很有用的:

<p v-for="item in items" v-bind:ref="'item' + item.id"></p>

以前 v-el/v-ref 和 v-for 一起使用将产生一个DOM数组或者组件数组,因为没法给每个元素一个特定名字。现在你还仍然可以这样做,给每个元素一个同样的ref:

<p v-for="item in items" ref="items"></p>

和 1.x 中不同, $refs 不是响应的,因为它们在渲染过程中注册/更新。只有监听变化并重复渲染才能使它们响应。另一方面,设计$refs主要是提供给 js 程序访问的,并不建议在模板中过度依赖使用它。因为这意味着在实例之外去访问实例状态,违背了 Vue 数据驱动的思想。

下面给一个vuejs2.0版本的例子:

<div id="example"> <input type="text" v-model="items.type1" ref="type1"/> <input type="text" v-model="items.type2" ref="type2"/> <div class="show">输入框一的内容:{{items.type1}}</div> <div class="show">输入框二的内容:{{items.type2}}</div></div><script> var example1 = new Vue({  el: '#example',  data: {  items: {   type1:'第一个输入框',   type2:'第二个输入框'  }  },  ready:function(){     },  watch:{   items:{    handler:function(val,oldval){     console.log(this.$refs.type1.value);     console.log(this.$refs.type2.value);    },    deep:true   }  },  methods:{    } })</script>

结果如图所示:

当在输入框输入文字的时候,js可以实时监听其指定输入框文本的值。

二、vuejs 1.x中js实时监听input

那么在vuejs 1.x的版本中是如何在js中监听某个指定的input的value变化的呢?

通过如下方式:

<input type="text" v-model="items.type1" v-el:texttype1/>

然后在vuejs中的watch中监听:

watch:{ items:{  handler:function(val,oldval){   console.log(this.$els.texttype1.value);  },  deep:true }}

整体代码:

<div id="example"> <input type="text" v-model="items.type1" v-el:texttype1/> <input type="text" v-model="items.type2" v-el:texttype2/> <div class="show">输入框一的内容:{{items.type1}}</div> <div class="show">输入框二的内容:{{items.type2}}</div></div><script> var example1 = new Vue({  el: '#example',  data: {  items: {   type1:'第一个输入框',   type2:'第二个输入框'  }  },  ready:function(){     },  watch:{   items:{    handler:function(val,oldval){     console.log(this.$els.texttype1.value);    },    deep:true   }  },  methods:{    } })</script>

实现的效果如图所示:

当在输入框中输入文字时,js中实时监听其变化的值。

总结

好了,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。

相关文章

JS基础教程——正则表达式示例 |

JS基础教程——正则表达式示例 |

推荐,正则表达式,示例,基础教程,电脑软件,正则表达式的() [] {}有不同的意思。() 是为了提取匹配的字符串。表达式中有几个()就有几个相应的匹配字符串。(\s*)表示连续空格的字符串。[]是定义匹配的字符范围。比如 [a-zA-Z0-9] 表示相应位…

wps表格怎么设置字体颜色根据条件

wps表格怎么设置字体颜色根据条件

条件,字体颜色,设置,教程,表格,  在生活工作中有很多地方会用到表格,用电脑软件制作出来的表格简单,实用,而且又很容易学会,那么大家知道wps表格字体颜色根据条件自动改变怎么设置呢?接下来请跟着小编了解吧。wps表格字体颜色根据条件自动改…

利用pm2部署多个node.js项目的配置

利用pm2部署多个node.js项目的配置

配置,教程,项目,多个,电脑软件,前言相信大家应该都知道,一般在实际项目部署中,我们服务器在启动的时候需要自动启动node服务。以前是通过liunx自带的命令启动。但是随着后台微服务越来越多。每次发布新程序。修改脚本太麻烦了。于是换成PM2来…

js实现简单数字变动效果

js实现简单数字变动效果

数字,变动,效果,简单,电脑软件,本文实例为大家分享了js实现数字变动效果展示的具体代码,供大家参考,具体内容如下$.fn.countTo = function (options) { options = options || {};//当options未被初始化,即typeof options = 'undefined'时,执…

React复制到剪贴板的示例代码

React复制到剪贴板的示例代码

示例代码,剪贴板,电脑软件,React,本文介绍了React复制到剪贴板可以使用插件copy-to-clipboard,分享给大家,具体如下:参考API文档 安装npm install --save react react-copy-to-clipboard使用const App = React.createClass({ getInitialState(…

fireworks对名称进行批量修改

fireworks对名称进行批量修改

批量修改,名称,电脑软件,fireworks,经常做图的人,有时为了备份或者避免重名,需要将图片名统一加个前缀或者后缀,这时fireworks的批量功能就可以帮我们大大提高工作效率,节省时间。下面来介绍一下具体的操作步骤。步骤:1、打开左上角的&ldquo;文…

ps怎么修改EPS格式的线条的颜色?

ps怎么修改EPS格式的线条的颜色?

修改,线条,颜色,格式,电脑软件,当我们进行图纸的导出时,经常使用EPS格式导出,这样就可以将图纸使用PS进行处理,但是当我们导出EPS格式时,多数情况图纸的线条颜色都是固定的,但是在PS处理中,我们需要多种多样的线条颜色。软件名称:Adobe Photoshop …

JS二叉树的简单实现方法示例

JS二叉树的简单实现方法示例

方法,二叉树,简单实现,示例,电脑软件,本文实例讲述了JS二叉树的简单实现方法。分享给大家供大家参考,具体如下:今天学习了一下 二叉树的实现,在此记录一下简单的二叉树实现,并且实现升序和降序排序输出function Node(data , left,right){ this…

Photoshop调整等高线和纹理制作巧

Photoshop调整等高线和纹理制作巧

纹理,文字,调整,等高线,电脑软件, 本例主要讲解如何利用等高线和纹理制作巧克力质感文字效果。首先输入文字并填充棕色,然后利用斜面和浮雕样式制作文字浮雕效果,最后通过调整等高线和纹理制作巧克力质感文字效果。有兴趣的朋友可以参考本文…

Vue-Cli中自定义过滤器的实现代码

Vue-Cli中自定义过滤器的实现代码

过滤器,自定义,代码,电脑软件,Vue,本文主要介绍了Vue-Cli中自定义过滤器,分享给大家,也给自己做个笔记vue2里面移除了内置过滤器,所有过滤器都需要自己定义。以下例子是使用webpack模版自定义一个日期格式过滤器的例子。文件结构.├── src│…

利用JavaScript实现栈的数据结构示

利用JavaScript实现栈的数据结构示

示例代码,数据结构,电脑软件,JavaScript,前言本文主要给大家介绍的是关于JavaScript实现栈的数据结构的相关内容,分享出来供大家参考学习,话不多少,来一起看看详细的介绍:堆栈(英语:stack),也可直接称栈,在计算机科学中,是一种特殊的串列形式的数据结…

微信小程序实现页面跳转传值的方法

微信小程序实现页面跳转传值的方法

传值,方法,页面跳转,程序,电脑软件,微信小程序实现页面跳转传值的方法比如从index。wxml跳转到aaa.wxmlindex.wml<navigator url="../aaa/aaa?id=1" > </navigator>传到aaa。wxml的时候传过去的值为id=1,则需要在aaa.wxml 的js获取到id=1a…