Форми Vue.js і прив’язка введення

Форми є ключовою частиною веб-додатків, що дозволяє користувачам вводити та надсилати дані. Vue.js спрощує роботу з формами та зв’язування введених даних, надаючи інтуїтивно зрозумілий спосіб керування введеними користувачами та синхронізуючи їх із даними програми. Ця стаття допоможе вам ознайомитися з основами роботи з формами та зв’язуванням вводу у Vue.js.

Основи зв'язування вхідних даних

У Vue.js двостороннє зв’язування даних для введення форм досягається за допомогою директиви v-model. Ця директива прив’язує значення вхідного елемента до властивості даних, забезпечуючи відображення будь-яких змін у вхідних даних у даних і навпаки.

<template>
  <div>
    <input v-model="message" placeholder="Type something"/>
    <p>Message: {{ message }}</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      message: ''
    };
  }
};
</script>

У цьому прикладі директива v-model прив’язує значення поля введення до властивості даних message. Будь-який текст, введений у поле введення, негайно відображається у властивості message і відображається в абзаці.

Робота з різними типами введення

Директива v-model працює з різними типами введення, включаючи текстові поля, прапорці, перемикачі та випадаючі списки. Ось як використовувати v-model з різними типами введення:

  • Введення тексту:<input type="text" v-model="text" />
  • Прапорець:<input type="checkbox" v-model="checked" />
  • Перемикачі:<input type="radio" v-model="selected" value="option1" />
  • Виберіть спадне меню:<select v-model="selected"> <option value="option1">Option 1</option> </select>

Обробка подання форми

Щоб обробити надсилання форми, ви можете використовувати обробник подій @submit для елемента <form>. Ось простий приклад того, як надсилати форму у Vue.js:

<template>
  <form @submit.prevent="submitForm">
    <input v-model="username" placeholder="Enter your username"/>
    <button type="submit">Submit</button>
  </form>
</template>

<script>
export default {
  data() {
    return {
      username: ''
    };
  },
  methods: {
    submitForm() {
      alert('Form submitted with username: ' + this.username);
    }
  }
};
</script>

У цьому прикладі директива @submit.prevent прослуховує подію надсилання форми та запобігає дії за умовчанням. Викликається метод submitForm, який відображає сповіщення з поданим іменем користувача.

Використання перевірки форми

Перевірка введених даних форми є важливою частиною обробки форм. Хоча Vue.js не надає вбудованої перевірки, ви можете використовувати спеціальні методи або сторонні бібліотеки, як-от VeeValidate, для обробки перевірки. Ось базовий приклад того, як можна реалізувати простий метод перевірки:

<template>
  <form @submit.prevent="validateForm">
    <input v-model="email" placeholder="Enter your email"/>
    <span v-if="!isEmailValid">Invalid email address</span>
    <button type="submit">Submit</button>
  </form>
</template>

<script>
export default {
  data() {
    return {
      email: '',
      isEmailValid: true
    };
  },
  methods: {
    validateForm() {
      const emailPattern = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
      this.isEmailValid = emailPattern.test(this.email);
      if (this.isEmailValid) {
        alert('Form submitted with email: ' + this.email);
      }
    }
  }
};
</script>

У цьому прикладі метод validateForm перевіряє, чи адреса електронної пошти відповідає шаблону регулярного виразу. Якщо електронна адреса дійсна, вона надсилає форму; інакше відображається повідомлення про помилку.

Висновок

Розуміння форм Vue.js і зв’язування вхідних даних має вирішальне значення для створення інтерактивних веб-додатків, керованих даними. Використовуючи директиву v-model і обробляючи надсилання форм, ви можете ефективно керувати введенням даних користувачами та створювати динамічні форми. За допомогою цих методів ви добре споряджені для виконання різноманітних завдань, пов’язаних із формами, у ваших програмах Vue.js.