vue.js 1.x与2.0中js实时监听input值的变化

发布时间 - 2026-01-11 00:10:42    点击率:

一、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>

结果如图所示:

当在输入框输入文字的时候,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>

实现的效果如图所示:

当在输入框中输入文字时,js中实时监听其变化的值。

总结

好了,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。


# vue监听input的变化  # vue  # 2.0  # input  # value  # vue监听input的值变化  # 利用JS响应式修改vue实现页面的input值  # vue获取input输入值的问题解决办法  # vue监听input标签的value值方法  # vue获取input值的三种常用写法  # 输入框  # 第一个  # 第二个  # 绑定  # 上时  # 如图所示  # 是一个  # 输入文字  # 好了  # 这意味着  # 你还  # 这样做  # 这篇文章  # 在一  # 能使  # 谢谢大家  # 并为  # 它也  # 提供给  # 框中 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?  如何在服务器上配置二级域名建站?  如何在云服务器上快速搭建个人网站?  如何快速上传建站程序避免常见错误?  东莞市网站制作公司有哪些,东莞找工作用什么网站好?  青岛网站建设如何选择本地服务器?  电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?  Win11怎么恢复误删照片_Win11数据恢复工具使用【推荐】  Laravel集合Collection怎么用_Laravel集合常用函数详解  Laravel怎么调用外部API_Laravel Http Client客户端使用  Laravel如何使用Laravel Vite编译前端_Laravel10以上版本前端静态资源管理【教程】  Laravel的Blade指令怎么自定义_创建你自己的Laravel Blade Directives  canvas 画布在主流浏览器中的尺寸限制详细介绍  HTML透明颜色代码怎么让下拉菜单透明_下拉菜单透明背景指南【技巧】  微信小程序 闭包写法详细介绍  HTML透明颜色代码在Angular里怎么设置_Angular透明颜色使用指南【详解】  Laravel的HTTP客户端怎么用_Laravel HTTP Client发起API请求教程  bing浏览器学术搜索入口_bing学术文献检索地址  微信h5制作网站有哪些,免费微信H5页面制作工具?  Laravel如何创建自定义Facades?(详细步骤)  详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)  Claude怎样写约束型提示词_Claude约束提示词写法【教程】  Win11怎么查看显卡温度 Win11任务管理器查看GPU温度【技巧】  Win11应用商店下载慢怎么办 Win11更改DNS提速下载【修复】  JS中页面与页面之间超链接跳转中文乱码问题的解决办法  Laravel如何使用软删除(Soft Deletes)功能_Eloquent软删除与数据恢复方法  DeepSeek是免费使用的吗 DeepSeek收费模式与Pro版本功能详解  Laravel怎么使用Blade模板引擎_Laravel模板继承与Component组件复用【手册】  如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?  C#如何调用原生C++ COM对象详解  php读取心率传感器数据怎么弄_php获取max30100的心率值【指南】  如何在阿里云虚拟主机上快速搭建个人网站?  网站建设保证美观性,需要考虑的几点问题!  电商网站制作价格怎么算,网上拍卖流程以及规则?  南京网站制作费用,南京远驱官方网站?  教你用AI将一段旋律扩展成一首完整的曲子  js实现点击每个li节点,都弹出其文本值及修改  如何在橙子建站中快速调整背景颜色?  Laravel Seeder填充数据教程_Laravel模型工厂Factory使用  iOS发送验证码倒计时应用  C语言设计一个闪闪的圣诞树  Laravel如何实现全文搜索_Laravel Scout集成Algolia或Meilisearch教程  韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐  Python文本处理实践_日志清洗解析【指导】  Laravel如何与Pusher实现实时通信?(WebSocket示例)  如何打造高效商业网站?建站目的决定转化率  laravel怎么配置和使用PHP-FPM来优化性能_laravel PHP-FPM配置与性能优化方法  佛山企业网站制作公司有哪些,沟通100网上服务官网?  利用JavaScript实现拖拽改变元素大小  php打包exe后无法访问网络共享_共享权限设置方法【教程】