What is v-bind and v-on?

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 the text 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, the onInput 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 the text variable with the new value.

What is v-model?

  • v-model: This is a shortcut (syntactic sugar) that combines v-bind and v-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:

  1. Replace :value="text" and @input="onInput" with v-model="text".

  2. Remove the onInput function because v-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? 😊