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 写的个性导航菜单
Dec 24 Javascript
网页实时显示服务器时间和javscript自运行时钟
Jun 09 Javascript
事件委托与阻止冒泡阻止其父元素事件触发
Sep 02 Javascript
纯CSS3代码实现滑动开关效果
Aug 19 Javascript
jquery实现初次打开有动画效果的网页TAB切换代码
Sep 06 Javascript
Require.JS中的几种define定义方式示例
Jun 01 Javascript
Vue2.0用 watch 观察 prop 变化(不触发)
Sep 08 Javascript
EL表达式截取字符串的函数说明
Sep 22 Javascript
webpack打包js文件及部署的实现方法
Dec 18 Javascript
浅谈Vue.js组件(二)
Apr 09 Javascript
解决layui 三级联动下拉框更新时回显的问题
Sep 03 Javascript
JavaScript如何实现防止重复的网络请求的示例
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
Godaddy空间Zend Optimizer升级方法
2010/05/10 PHP
Laravel 5.3 学习笔记之 错误&amp;日志
2016/08/28 PHP
PHP实现微信公众号验证Token的示例代码
2019/12/16 PHP
javascript innerHTML使用分析
2010/12/03 Javascript
jQuery对下拉框,单选框,多选框的操作
2014/02/21 Javascript
jquery获取复选框被选中的值
2014/04/10 Javascript
改变状态栏文字的js代码
2014/06/13 Javascript
JS合并数组的几种方法及优劣比较
2014/09/19 Javascript
js+HTML5实现canvas多种颜色渐变效果的方法
2015/06/05 Javascript
Javascript中的getUTCHours()方法使用详解
2015/06/10 Javascript
jQuery实现带延迟的二级tab切换下拉列表效果
2015/09/01 Javascript
js实现C#的StringBuilder效果完整实例
2015/12/22 Javascript
原生JS实现轮播效果+学前端的感受(防止走火入魔)
2016/08/21 Javascript
Vue.directive自定义指令的使用详解
2017/03/10 Javascript
Angular2 自定义validators的实现方法
2017/07/05 Javascript
JavaScript模拟实现封装的三种方式及写法区别
2017/10/27 Javascript
基于vue、react实现倒计时效果
2019/08/26 Javascript
JavaScript原型式继承实现方法
2019/11/06 Javascript
Vue左滑组件slider使用详解
2020/08/21 Javascript
[01:38]DOTA2第二届亚洲邀请赛中国区预选赛出线战队晋级之路
2017/01/17 DOTA
[51:26]VP vs VG 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
Python使用cx_Oracle模块操作Oracle数据库详解
2018/05/07 Python
Django给admin添加Action的步骤详解
2019/05/01 Python
Python安装Flask环境及简单应用示例
2019/05/03 Python
django框架两个使用模板实例
2019/12/11 Python
Python PyQt5运行程序把输出信息展示到GUI图形界面上
2020/04/27 Python
keras 如何保存最佳的训练模型
2020/05/25 Python
澳大利亚窗帘商店:Curtain Wonderland
2019/12/01 全球购物
钳工实习自我鉴定
2013/09/19 职场文书
技术总监管理职责范本
2014/03/06 职场文书
我的小天地教学反思
2014/04/30 职场文书
党员检讨书范文
2014/12/27 职场文书
户外活动总结
2015/02/04 职场文书
拯救大兵瑞恩观后感
2015/06/09 职场文书
Django migrate报错的解决方案
2021/05/20 Python
详解Vue项目的打包方式(生成dist文件)
2022/01/18 Vue.js