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 相关文章推荐
jQueryPad 实用的jQuery测试工具(支持IE,chrome,FF)
May 22 Javascript
js在数组中删除重复的元素自保留一个(两种实现思路)
Aug 22 Javascript
JS实现鼠标箭头变成一个燃烧烛光效果的方法
Feb 28 Javascript
深入理解JavaScript系列(35):设计模式之迭代器模式详解
Mar 03 Javascript
JavaScript将数字转换成大写中文的方法
Mar 23 Javascript
js实现图片无缝滚动
Dec 23 Javascript
使用堆实现Top K算法(JS实现)
Dec 25 Javascript
jQuery基本选择器之标签名选择器
Sep 03 Javascript
Bootstrap基本样式学习笔记之表格(2)
Dec 07 Javascript
jquery ajax异步提交表单数据的方法
Oct 27 jQuery
深入浅析Vue 中 ref 的使用
Apr 29 Javascript
vue 使用vant插件做tabs切换和无限加载功能的实现
Nov 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 字符截取 解决中文的截取问题,不用mb系列
2009/09/29 PHP
php中explode与split的区别介绍
2012/10/03 PHP
PHP+MySQL修改记录的方法
2015/01/21 PHP
示例详解Laravel重置密码代码重构
2016/08/10 PHP
PHP简单实现正则匹配省市区的方法
2018/04/13 PHP
PHP设计模式之策略模式原理与用法实例分析
2019/04/04 PHP
ThinkPHP3.2框架自带分页功能实现方法示例
2019/05/13 PHP
javascript一些不错的函数脚本代码
2008/09/10 Javascript
js 弹出框 替代浏览器的弹出框
2010/10/29 Javascript
jQuery插件开发精品教程(让你的jQuery更上一个台阶)
2015/11/07 Javascript
jquery获取css的color值返回RGB的方法
2015/12/18 Javascript
JS实现列表的响应式排版(推荐)
2016/09/01 Javascript
JS中使用mailto实现将用户在网页中输入的内容传递到本地邮件客户端
2016/10/08 Javascript
详解Angular 4 表单快速入门
2017/06/05 Javascript
Layui 带多选框表格监听事件以及按钮自动点击写法实例
2019/09/02 Javascript
卸载vue2.0并升级vue_cli3.0的实例讲解
2020/02/16 Javascript
JavaScript 俄罗斯方块游戏实现方法与代码解释
2020/04/08 Javascript
jQuery实现B2B网站后台管理系统侧导航
2020/07/08 jQuery
Python语言的变量认识及操作方法
2018/02/11 Python
Python格式化输出字符串方法小结【%与format】
2018/10/29 Python
对numpy中向量式三目运算符详解
2018/10/31 Python
用Python抢火车票的简单小程序实现解析
2019/08/14 Python
Python基于数列实现购物车程序过程详解
2020/06/09 Python
Boden澳大利亚官网:英国在线服装公司
2018/08/05 全球购物
SportsDirect.com马来西亚:英国第一体育零售商
2018/11/21 全球购物
Bonami斯洛伐克:购买家具和家居饰品
2019/07/02 全球购物
应聘医药销售自荐书范文
2014/02/08 职场文书
机关党员2014全国两会学习心得体会
2014/03/10 职场文书
弘扬民族精神演讲稿
2014/05/07 职场文书
李培根演讲稿
2014/05/22 职场文书
施工安全生产承诺书
2014/05/23 职场文书
数学兴趣小组活动总结
2014/07/08 职场文书
明星员工获奖感言
2014/08/14 职场文书
医院办公室主任岗位职责
2015/04/01 职场文书
学雷锋活动简报
2015/07/20 职场文书
windows server 2012安装FTP并配置被动模式指定开放端口
2022/06/10 Servers