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 相关文章推荐
JQuery1.4+ Ajax IE8 内存泄漏问题
Oct 15 Javascript
js 获取radio按钮值的实例
Aug 17 Javascript
jQuery多级弹出菜单插件ZoneMenu
Dec 18 Javascript
jQuery 中DOM 操作详解
Jan 13 Javascript
动态加载jQuery的两种方法实例分析
Jul 17 Javascript
JS非Alert实现网页右下角“未读信息”效果弹窗
Sep 26 Javascript
基于jquery实现图片上传本地预览功能
Jan 08 Javascript
类似于QQ的右滑删除效果的实现方法
Oct 16 Javascript
jQuery阻止移动端遮罩层后页面滚动
Mar 15 Javascript
Vue Router去掉url中默认的锚点#
Aug 01 Javascript
关于微信小程序bug记录与解决方法
Aug 15 Javascript
微信小程序云开发获取文件夹下所有文件(推荐)
Nov 14 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
PHP简单实现断点续传下载的方法
2015/09/25 PHP
PHP实现在数据库百万条数据中随机获取20条记录的方法
2017/04/19 PHP
PDO::commit讲解
2019/01/27 PHP
PHP For循环字母A-Z当超过26个字母时输出AA,AB,AC
2020/02/16 PHP
Cookie 注入是怎样产生的
2009/04/08 Javascript
javascript字母大小写转换的4个函数详解
2014/05/09 Javascript
jQuery实现购物车数字加减效果
2015/03/14 Javascript
node.js cookie-parser之parser.js
2016/06/06 Javascript
canvas快速绘制圆形、三角形、矩形、多边形方法介绍
2016/12/29 Javascript
DWR3 访问WEB元素的两种方法实例详解
2017/01/03 Javascript
Vue头像处理方案小结
2018/07/26 Javascript
[01:06]DOTA2亚洲邀请赛专属珍藏-荧煌之礼
2017/03/24 DOTA
Python自动化构建工具scons使用入门笔记
2015/03/10 Python
Python 使用SMTP发送邮件的代码小结
2016/09/21 Python
python3基于OpenCV实现证件照背景替换
2018/07/18 Python
Python 给屏幕打印信息加上颜色的实现方法
2019/04/24 Python
基于pytorch的保存和加载模型参数的方法
2019/08/17 Python
tensorflow 自定义损失函数示例代码
2020/02/05 Python
python中round函数保留两位小数的方法
2020/12/04 Python
CSS3改变浏览器滚动条样式
2019/01/04 HTML / CSS
HTML5 Canvas中绘制矩形实例
2015/01/01 HTML / CSS
HTML5 Canvas绘制圆点虚线实例
2015/01/01 HTML / CSS
html5 input输入实时检测以及延时优化
2018/07/18 HTML / CSS
DHC美国官网:日本通信销售第一的化妆品品牌
2017/11/12 全球购物
蔻驰英国官网:COACH英国
2020/07/19 全球购物
自我鉴定怎么写
2013/12/05 职场文书
应届毕业生求职信范例分享
2013/12/17 职场文书
医药专业应届毕业生求职信范文
2014/01/01 职场文书
绩效工资分配方案
2014/01/18 职场文书
企业文明单位申报材料
2014/05/16 职场文书
2015年党支部书记工作总结
2015/05/21 职场文书
初中团支书竞选稿
2015/11/21 职场文书
解决golang 关于全局变量的坑
2021/05/06 Golang
MySQL去除重叠时间求时间差和的实现
2021/08/23 MySQL
Python使用psutil库对系统数据进行采集监控的方法
2021/08/23 Python
Linux下使用C语言代码搭建一个简单的HTTP服务器
2022/04/13 Servers