@change
是 Vue.js 中用于监听表单元素值变化的事件处理器。
-
双向绑定: 通常,你会将 @change 事件与 v-model 一起使用。v-model 是 Vue.js 提供的一种指令,用于实现表单元素和数据之间的双向绑定。当用户输入内容时,v-model 会自动更新数据,而当数据发生变化时,输入框的值也会随之更新。
-
事件触发时机: @change 事件会在表单元素的值发生变化并失去焦点(通常是用户输入后按下回车键或点击其他地方)时触发。这与 @input 事件不同,后者会在每次输入时都触发。
-
事件处理器: 你需要在 Vue 组件中定义一个方法,作为 @change 事件的处理器。这个方法将在表单元素的值发生变化后被调用,你可以在其中执行任何操作,比如验证用户输入、向服务器发送请求、触发其他组件的更新等。
-
传递事件对象: 如果需要访问事件对象,可以在方法中使用
$event
参数来获取。例如,如果你想要获取输入框的新值,可以这样做:@change=“handleChange($event)”,然后在方法中使用 $event.target.value 来获取新值。 -
应用场景: @change 通常用于处理用户输入的最终确认,比如搜索框中的关键字输入、表单的提交等。在这些情况下,你可能只想在用户完成输入并准备进行下一步操作时才执行相应的逻辑。
通常用于监听表单输入框等元素的变化,以便在值发生变化时执行特定的操作。具体用法如下:
<template>
<input type="text" v-model="inputValue" @change="handleChange" />
</template>
<script>
export default {
data() {
return {
inputValue: ''
};
},
methods: {
handleChange() {
// 在这里可以处理输入框的值变化后的操作
console.log('输入框的值发生变化,新的值是:', this.inputValue);
}
}
};
</script>
上面的例子中,我们在 <input>
元素上使用了 v-model 来双向绑定 inputValue 数据,同时使用 @change 监听了输入框的变化事件。当输入框的值发生变化时,handleChange 方法将被调用,你可以在该方法中执行任何你需要的操作,例如验证输入、触发其他逻辑等。
也可以在同一页面中,点击相关按钮进行切换触发,如下:
<div style="float: right; margin: 10px 10px 10px 10px">
<el-radio-group v-model="isShow" @change="showChange">
<el-radio-button v-model="isShow" :label=1>value1</el-radio-button>
<el-radio-button v-model="isShow" :label=2>value2</el-radio-button>
</el-radio-group>
</div>
JS
showChange(){
if(this.isShow == 1){
//执行的操作
}else{
//执行的操作
}
}