What is v-bind and v-on?


What is v-bind
and v-on
?
v-bind
: This is used to bind data from your JavaScript to the HTML. For example,:value="text"
means the input's value is connected to thetext
variable in your JavaScript.v-on
: This is used to listen to events (like typing in an input box). For example,@input="onInput"
means when you type in the input box, theonInput
function in your JavaScript will run.
Example with v-bind
and v-on
:
<input :value="text" @input="onInput">
function onInput(e) {
text.value = e.target.value; // Update the `text` variable with what you type
}
- Here, when you type in the input box, the
onInput
function updates thetext
variable with the new value.
What is v-model
?
v-model
: This is a shortcut (syntactic sugar) that combinesv-bind
andv-on
. It automatically syncs the input's value with a variable in your JavaScript. You don’t need to write a separate function to update the variable.
Example with v-model
:
<input v-model="text">
- This does the same thing as the previous example but in a simpler way. When you type in the input box, the
text
variable is automatically updated.
Why use v-model
?
- It’s simpler and cleaner. You don’t need to write extra code to handle the input event. Vue takes care of it for you.
How to Refactor the Code:
Replace
:value="text"
and@input="onInput"
withv-model="text"
.Remove the
onInput
function becausev-model
handles it automatically.
Final Code:
<input v-model="text">
// No need for the `onInput` function anymore!
Now, when you type in the input box, the text
variable will automatically update. Easy, right? 😊
Subscribe to my newsletter
Read articles from Pravin Jadhav directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by

Pravin Jadhav
Pravin Jadhav
Hi, My goal is to demystify DevOps, break down complex concepts into approachable lessons, and build a resource that not only tracks my progress but also helps others accelerate their own learning curves. Thank you for joining me on this journey—let's explore the future of development and operations together!