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


Posted in Javascript onMarch 15, 2017

一、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>

结果如图所示:

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

当在输入框输入文字的时候,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>

实现的效果如图所示:

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

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

总结

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

Javascript 相关文章推荐
JQuery的一些小应用收集
Mar 27 Javascript
JavaScript 设计模式 安全沙箱模式
Sep 24 Javascript
打豆豆小游戏 用javascript编写的[打豆豆]小游戏
Jan 08 Javascript
Javascript基础教程之函数对象和属性
Jan 18 Javascript
JQuery实现可直接编辑的表格
Apr 16 Javascript
Bootstrap表单制作代码
Mar 17 Javascript
jQuery层级选择器_动力节点节点Java学院整理
Jul 04 jQuery
Angular4学习教程之DOM属性绑定详解
Jan 04 Javascript
使用js实现将后台传入的json数据放在前台显示
Aug 06 Javascript
node使用Mongoose类库实现简单的增删改查
Nov 08 Javascript
webpack file-loader和url-loader的区别
Jan 15 Javascript
vue自动化路由的实现代码
Sep 30 Javascript
js仿淘宝商品放大预览功能
Mar 15 #Javascript
利用Plupload.js解决大文件上传问题, 带进度条和背景遮罩层
Mar 15 #Javascript
javascript九宫格图片随机打乱位置的实现方法
Mar 15 #Javascript
JavaScript实现审核流程状态的动态显示进度条
Mar 15 #Javascript
js实现自定义进度条效果
Mar 15 #Javascript
yii form 表单提交之前JS在提交按钮的验证方法
Mar 15 #Javascript
jQuery模拟窗口抖动效果
Mar 15 #Javascript
You might like
浅谈电磁辐射对健康的影响
2021/03/01 无线电
PHP的中问验证码
2006/11/25 PHP
PHP获取网卡地址的代码
2008/04/09 PHP
抓取YAHOO股票报价的类
2009/05/15 PHP
php环境配置之CGI、FastCGI、PHP-CGI、PHP-FPM、Spawn-FCGI比较?
2011/10/17 PHP
PHP CURL获取cookies模拟登录的方法
2013/11/04 PHP
php使用pdo连接报错Connection failed SQLSTATE的解决方法
2014/12/15 PHP
给ECShop添加最新评论
2015/01/07 PHP
php中如何执行linux命令详解
2018/11/06 PHP
PHP的mysqli_stat()函数讲解
2019/01/23 PHP
javascript网页关键字高亮代码
2008/07/30 Javascript
javascript 表格排序和表头浮动效果(扩展SortTable)
2009/04/07 Javascript
Android中资源文件(非代码部分)的使用概览
2012/12/18 Javascript
javascript加载xml 并解析各节点的值(实现方法)
2016/10/12 Javascript
jQuery内存泄露解决办法
2016/12/13 Javascript
原生和jQuery的ajax用法详解
2017/01/23 Javascript
使用vue和datatables进行表格的服务器端分页实例代码
2017/06/07 Javascript
JavaScript多线程运行库Nexus.js详解
2017/12/22 Javascript
Vue CLI3搭建的项目中路径相关问题的解决
2018/09/17 Javascript
node+multer实现图片上传的示例代码
2020/02/18 Javascript
解决Vue-cli无法编译es6的问题
2020/10/30 Javascript
vue中axios封装使用的完整教程
2021/03/03 Vue.js
[06:45]2018DOTA2亚洲邀请赛 4.5 SOLO赛 Sccc vs Maybe
2018/04/06 DOTA
Django框架中方法的访问和查找
2015/07/15 Python
python 美化输出信息的实例
2018/10/15 Python
python实现的分层随机抽样案例
2020/02/25 Python
在Python IDLE 下调用anaconda中的库教程
2020/03/09 Python
澳大利亚领先的武术用品和健身器材供应商:SMAI
2019/03/24 全球购物
电子商务专业个人的自我评价分享
2013/10/29 职场文书
大学在校生求职信范文
2013/11/21 职场文书
品质标语大全
2014/06/21 职场文书
会计继续教育培训心得体会
2016/01/19 职场文书
python使用PySimpleGUI设置进度条及控件使用
2021/06/10 Python
Vue的生命周期一起来看看
2022/02/24 Vue.js
Python如何快速找到多个字典中的公共键(key)
2022/04/29 Python
聊聊CSS粘性定位sticky案例解析
2022/06/01 HTML / CSS