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 相关文章推荐
使用Mootools动态添加Css样式表代码,兼容各浏览器
Dec 12 Javascript
当某个文本框成为焦点时即清除文本框内容
Apr 28 Javascript
在Javascript中处理数组之toSource()方法的使用
Jun 09 Javascript
JS两个数组比较,删除重复值的巧妙方法(推荐)
Jun 03 Javascript
Vue.js每天必学之Class与样式绑定
Sep 05 Javascript
bootstrap多种样式进度条展示
Dec 20 Javascript
JS调用Android、Ios原生控件
Jan 06 Javascript
通过V8源码看一个关于JS数组排序的诡异问题
Aug 14 Javascript
通俗易懂地解释JS中的闭包
Oct 23 Javascript
vue路由组件按需加载的几种方法小结
Jul 12 Javascript
Node.js使用MongoDB的ObjectId作为查询条件的方法
Sep 10 Javascript
uniapp实现可滑动选项卡
Oct 21 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
使用网络地址转换实现多服务器负载均衡
2006/10/09 PHP
php+ajax实现文章自动保存的方法
2014/12/30 PHP
php PDO异常处理详解
2016/11/20 PHP
javascript cookie解码函数(兼容ff)
2008/03/17 Javascript
CSS常用网站布局实例
2008/04/03 Javascript
jquery.lazyload  实现图片延迟加载jquery插件
2010/02/06 Javascript
一个轻量级的javascript库 pj介绍
2010/12/19 Javascript
jQuery动态地获取系统时间实现代码
2013/05/24 Javascript
jQuery操作JSON的CRUD用法实例
2015/02/25 Javascript
理解JavaScript表单的基础知识
2016/01/25 Javascript
手机Web APP如何实现分享多平台功能
2016/08/19 Javascript
jQuery实现单击按钮遮罩弹出对话框效果(1)
2017/02/20 Javascript
nodejs同步调用获取mysql数据时遇到的大坑
2019/03/02 NodeJs
vue 出现data-v-xxx的原因及解决
2020/08/04 Javascript
python通过cookie模拟已登录状态的初步研究
2016/11/09 Python
Python使用matplotlib绘制随机漫步图
2018/08/27 Python
详解Python 解压缩文件
2019/04/09 Python
详解Django 时间与时区设置问题
2019/07/23 Python
利用anaconda作为python的依赖库管理方法
2019/08/13 Python
Python如何使用BeautifulSoup爬取网页信息
2019/11/26 Python
Python Des加密解密如何实现软件注册码机器码
2020/01/08 Python
Selenium使用Chrome模拟手机浏览器方法解析
2020/04/10 Python
Python基于Serializer实现字段验证及序列化
2020/11/04 Python
Python运算符+与+=的方法实例
2021/02/18 Python
Canvas实现放大镜效果完整案例分析(附代码)
2020/11/26 HTML / CSS
I.T中国官网:精选时尚设计师单品网购平台
2018/03/26 全球购物
豪华床上用品 :Jennifer Adams
2019/09/15 全球购物
班会关于环保演讲稿
2013/12/29 职场文书
违反交通法规检讨书
2014/09/10 职场文书
学习优秀共产党员先进事迹思想报告
2014/09/17 职场文书
大学生个人学年总结
2015/02/15 职场文书
2015年护理工作总结范文
2015/04/03 职场文书
2015年社区平安建设工作总结
2015/05/13 职场文书
Apache Calcite 实现方言转换的代码
2021/04/24 Servers
postgresql使用filter进行多维度聚合的解决方法
2021/07/16 PostgreSQL
JS实现数组去重的11种方法总结
2022/04/04 Javascript