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 相关文章推荐
asp.net网站开发中用jquery实现滚动浏览器滚动条加载数据(类似于腾讯微博)
Mar 14 Javascript
Javascript判断对象是否相等实现代码
Mar 18 Javascript
js获取表格的行数和列数的方法
Oct 23 Javascript
jQuery实现悬浮在右上角的网页客服效果代码
Oct 24 Javascript
php基于redis处理session的方法
Mar 14 Javascript
图文详解JavaScript的原型对象及原型链
Aug 02 Javascript
JS比较两个数值的大小实例
Nov 25 Javascript
浅谈javascript的url参数parse和build函数
Mar 04 Javascript
socket.io与pm2(cluster)集群搭配的解决方案
Jun 02 Javascript
Vue2.0 事件的广播与接收(观察者模式)
Mar 14 Javascript
vue form 表单提交后刷新页面的方法
Sep 04 Javascript
微信小程序 自定义复选框实现代码实例
Sep 04 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开发模式(简写版)
2007/03/15 PHP
PHP中simplexml_load_string函数使用说明
2011/01/01 PHP
PHP全概率运算函数(优化版) Webgame开发必备
2011/07/04 PHP
PHP strip_tags()去除HTML、XML以及PHP的标签介绍
2014/02/18 PHP
简单实现php上传文件功能
2017/09/21 PHP
PHP实现单文件、多个单文件、多文件上传函数的封装示例
2019/09/02 PHP
PHP实现简单用户登录界面
2019/10/23 PHP
显示、隐藏密码
2006/07/01 Javascript
JS定时关闭窗口的实例
2013/05/22 Javascript
运用jQuery定时器的原理实现banner图片切换
2014/10/22 Javascript
使用 js+正则表达式为关键词添加链接
2014/11/11 Javascript
AngularJS入门教程之Hello World!
2014/12/06 Javascript
JavaScript学习笔记(三):JavaScript也有入口Main函数
2015/09/12 Javascript
jQuery的实例及必知重要的jQuery选择器详解
2016/05/20 Javascript
浅谈jquery高级方法描述与应用
2016/10/04 Javascript
jQuery webuploader分片上传大文件
2016/11/07 Javascript
Vue一个案例引发的递归组件的使用详解
2018/11/15 Javascript
JS实现的tab页切换效果完整示例
2018/12/18 Javascript
python批量提交沙箱问题实例
2014/10/08 Python
举例区分Python中的浅复制与深复制
2015/07/02 Python
python用列表生成式写嵌套循环的方法
2018/11/08 Python
Python flask路由间传递变量实例详解
2020/06/03 Python
python使用自定义钉钉机器人的示例代码
2020/06/24 Python
django前端页面下拉选择框默认值设置方式
2020/08/09 Python
个人简历的自荐信
2013/10/23 职场文书
白酒市场开发计划书
2014/01/09 职场文书
保险经纪人求职信
2014/03/11 职场文书
大学活动总结范文
2014/04/29 职场文书
我是一名护士演讲稿
2014/08/28 职场文书
保密工作整改报告
2014/11/06 职场文书
2015应届毕业生自荐信范文
2015/03/05 职场文书
2015中秋节晚会主持词
2015/07/01 职场文书
大学学生会主席竞选稿
2015/11/19 职场文书
护理工作心得体会
2016/01/22 职场文书
go原生库的中bytes.Buffer用法
2021/04/25 Golang
python人工智能human learn绘图可创建机器学习模型
2021/11/23 Python