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后无法访问网络共享_共享权限设置方法【教程】

