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 相关文章推荐
打开超链需要“确认”对话框的方法
Mar 08 Javascript
jquery pagination插件实现无刷新分页代码
Oct 13 Javascript
几个比较经典常用的jQuery小技巧
Mar 01 Javascript
js操作table示例(个人心得)
Nov 29 Javascript
javascript等号运算符使用详解
Apr 16 Javascript
javascript表单处理具体实现代码(表单、链接、按钮)
May 07 Javascript
浅谈js中用$(#ID)来作为选择器的问题(id重复的时候)
Feb 14 Javascript
Bootstrap表格制作代码
Mar 17 Javascript
React-intl 实现多语言的示例代码
Nov 03 Javascript
为什么使用koa2搭建微信第三方公众平台的原因
May 16 Javascript
Vue使用Proxy监听所有接口状态的方法实现
Jun 07 Javascript
electron 如何将任意资源打包的方法步骤
Apr 16 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
Apache+php+mysql在windows下的安装与配置图解(最新版)
2008/11/30 PHP
PHP中实现中文字符进制转换原理分析
2011/12/06 PHP
PHP数据集构建JSON格式及新数组的方法
2012/11/07 PHP
thinkphp3.2嵌入百度编辑器ueditor的实例代码
2017/07/13 PHP
php模式设计之观察者模式应用实例分析
2019/09/25 PHP
如何判断图片地址是否失效
2007/02/02 Javascript
JS验证日期的格式YYYY-mm-dd 具体实现
2013/06/29 Javascript
jquery ajax 调用失败的原因示例介绍
2013/09/27 Javascript
Javascript中string转date示例代码
2013/11/01 Javascript
jQuery实现360°全景拖动展示
2015/03/18 Javascript
jQuery on()方法使用技巧详解
2015/04/16 Javascript
鼠标经过子元素触发mouseout,mouseover事件的解决方案
2015/07/26 Javascript
Javascript BOM学习小结(六)
2015/11/26 Javascript
AngularJS入门教程之ng-checked 指令详解
2016/08/01 Javascript
vue.js指令v-for使用及索引获取
2016/11/03 Javascript
jQuery实现checkbox列表的全选、反选功能
2016/11/24 Javascript
Underscore之Array_动力节点Java学院整理
2017/07/10 Javascript
iscroll动态加载数据完美解决方法
2017/07/18 Javascript
Vue2.0实现调用摄像头进行拍照功能 exif.js实现图片上传功能
2018/04/28 Javascript
vue中使用vue-print.js实现多页打印
2020/03/05 Javascript
Python实现针对给定单链表删除指定节点的方法
2018/04/12 Python
Python使用sorted对字典的key或value排序
2018/11/15 Python
python将视频转换为全字符视频
2019/04/26 Python
韩国知名的家庭购物网站:CJmall
2016/08/01 全球购物
Myprotein荷兰官网:欧洲第一运动营养品牌
2020/07/11 全球购物
优秀研究生自我鉴定
2013/12/04 职场文书
护士个人自我鉴定
2014/03/24 职场文书
酒店优秀员工事迹材料
2014/06/02 职场文书
大学生找工作求职信
2014/07/09 职场文书
关于有小孩的离婚协议书
2014/10/26 职场文书
学校党风廉政建设调研报告
2015/01/01 职场文书
大雁塔英文导游词
2015/02/10 职场文书
2015年青年教师工作总结
2015/05/25 职场文书
IDEA使用SpringAssistant插件创建SpringCloud项目
2021/06/23 Java/Android
Python 数据科学 Matplotlib图库详解
2021/07/07 Python
Redis数据同步之redis shake的实现方法
2022/04/21 Redis