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 相关文章推荐
获取元素距离浏览器周边的位置的方法getBoundingClientRect
Apr 17 Javascript
JS函数的几种定义方式分析
Dec 17 Javascript
JavaScript知识点总结(六)之JavaScript判断变量数据类型
May 31 Javascript
[js高手之路]HTML标签解释成DOM节点的实现方法
Aug 31 Javascript
关于jquery layui弹出层的使用方法
Apr 21 jQuery
详解关于React-Router4.0跳转不置顶解决方案
May 10 Javascript
微信小程序实现文件、图片上传功能
Aug 18 Javascript
JS实现使用POST方式发送请求
Aug 30 Javascript
jQuery操作元素的内容和样式完整实例分析
Jan 10 jQuery
Vue.js原理分析之nextTick实现详解
Sep 07 Javascript
用vue写一个日历
Nov 02 Javascript
原生js实现无缝轮播图效果
Jan 28 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将整个网站生成HTML纯静态网页的方法总结
2012/02/05 PHP
PHP对表单提交特殊字符的过滤和处理方法汇总
2014/02/18 PHP
让ThinkPHP支持大小写url地址访问的方法
2014/10/31 PHP
php实现Session存储到Redis
2015/11/11 PHP
PHP操作MySQL中BLOB字段的方法示例【存储文本与图片】
2017/09/15 PHP
javascript break指定标签打破多层循环示例
2014/01/20 Javascript
jQuery实现带延迟的二级tab切换下拉列表效果
2015/09/01 Javascript
JavaScript知识点总结之如何提高性能
2016/01/15 Javascript
Ext JS框架中日期函数的用法及日期选择控件的实现
2016/05/21 Javascript
javascript检测移动设备横竖屏
2016/05/21 Javascript
Bootstrap实现带动画过渡的弹出框
2016/08/09 Javascript
Bootstrap文件上传组件之bootstrap fileinput
2016/11/25 Javascript
AngularJS 单选框及多选框的双向动态绑定
2017/04/20 Javascript
js自定义弹框插件的封装
2020/08/24 Javascript
Extjs 中的 Treepanel 实现菜单级联选中效果及实例代码
2017/08/22 Javascript
动态加载、移除js/css文件的示例代码
2018/03/20 Javascript
vue项目每30秒刷新1次接口的实现方法
2018/12/04 Javascript
jQuery模拟html下拉多选框的原生实现方法示例
2019/05/30 jQuery
vue elementui tree 任意级别拖拽功能代码
2020/08/31 Javascript
[49:02]KG vs Infamous 2019国际邀请赛淘汰赛 败者组BO1 8.20.mp4
2020/07/19 DOTA
Python抓取Discuz!用户名脚本代码
2013/12/30 Python
python贪吃蛇游戏代码
2020/04/18 Python
对python while循环和双重循环的实例详解
2019/08/23 Python
python tkinter 设置窗口大小不可缩放实例
2020/03/04 Python
使用jupyter Nodebook查看函数或方法的参数以及使用情况
2020/04/14 Python
纯css3实现走马灯效果
2014/12/26 HTML / CSS
瑞典首都斯德哥尔摩的多元奢侈时尚品牌:Acne Studios
2017/07/09 全球购物
澳大利亚墨尔本的在线时装店:LORETA
2018/09/14 全球购物
香港演唱会订票网站:StubHub香港
2019/10/10 全球购物
文秘专业个人求职信
2013/12/22 职场文书
毕业自我评价
2014/02/05 职场文书
《三个小伙伴》教学反思
2014/04/11 职场文书
酒桌上的祝酒词
2015/08/12 职场文书
2016优秀班主任个人先进事迹材料
2016/02/26 职场文书
《卧薪尝胆》读后感3篇
2019/12/26 职场文书
i5-10400f处理相当于i7多少水平
2022/04/19 数码科技