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在vs2008及js文件中的无智能提示的解决方法
Dec 30 Javascript
jquery 操作css样式、位置、尺寸方法汇总
Nov 28 Javascript
JS上传图片预览插件制作(兼容到IE6)
Aug 07 Javascript
Vuex入门到上手教程
Jun 20 Javascript
vue的style绑定background-image的方式和其他变量数据的区别详解
Sep 03 Javascript
Vue一个案例引发的递归组件的使用详解
Nov 15 Javascript
JavaScript基于数组实现的栈与队列操作示例
Dec 22 Javascript
vue中使用props传值的方法
May 08 Javascript
Vue使用axios出现options请求方法
May 30 Javascript
详解Vue后台管理系统开发日常总结(组件PageHeader)
Nov 01 Javascript
js实现经典贪吃蛇小游戏
Mar 19 Javascript
vue Cli 环境删除与重装教程 - 版本文档
Sep 11 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
MYSQL环境变量设置方法
2007/01/15 PHP
生成php程序的php代码
2008/04/07 PHP
一些被忽视的PHP函数(简单整理)
2010/04/30 PHP
phpmyadmin里面导入sql语句格式的大量数据的方法
2010/06/05 PHP
PHP Stream_*系列函数
2010/08/01 PHP
php+mysqli事务控制实现银行转账实例
2015/01/29 PHP
php生成短域名函数
2015/03/23 PHP
PHP new static 和 new self详解
2017/02/19 PHP
PHP接入支付宝接口失效流程详解
2020/11/10 PHP
javascript工具库代码
2012/03/29 Javascript
jQuery获取注册信息并提示实现代码
2013/04/21 Javascript
javascript计算星座属相(十二生肖属相)示例代码
2014/01/09 Javascript
js实现浏览器窗口大小被改变时触发事件的方法
2015/02/02 Javascript
详解node.js搭建代理服务器请求数据
2017/04/08 Javascript
快速处理vue渲染前的显示问题
2018/03/05 Javascript
全站最详细的Vuex教程
2018/04/13 Javascript
vue中v-model的应用及使用详解
2018/06/27 Javascript
对vue2.0中.vue文件页面跳转之.$router.push的用法详解
2018/08/24 Javascript
vue.js编译时给生成的文件增加版本号
2018/09/17 Javascript
vue-router两种模式区别及使用注意事项详解
2019/08/01 Javascript
Vue项目中使用jsonp抓取跨域数据的方法
2019/11/10 Javascript
在vue中使用防抖和节流,防止重复点击或重复上拉加载实例
2019/11/13 Javascript
JavaScript 类的封装操作示例详解
2020/05/16 Javascript
通过实例解析chrome如何在mac环境中安装vue-devtools插件
2020/07/10 Javascript
Python 基础教程之str和repr的详解
2017/08/20 Python
pycharm远程调试openstack代码
2017/11/21 Python
Python Xml文件添加字节属性的方法
2018/03/31 Python
Python创建普通菜单示例【基于win32ui模块】
2018/05/09 Python
Selenium获取登录Cookies并添加Cookies自动登录的方法
2020/12/04 Python
Python 2.6.6升级到Python2.7.15的详细步骤
2020/12/14 Python
诚信承诺书范文
2014/03/27 职场文书
公司委托书怎么写
2014/08/02 职场文书
医院护士见习期自我鉴定
2014/09/15 职场文书
2014镇副书记群众路线专题民主生活会思想汇报
2014/09/23 职场文书
海南召开党的群众路线教育实践活动总结大会新闻稿
2014/10/21 职场文书
布达拉宫导游词
2015/02/02 职场文书