Book Image

Vue.js 3 By Example

By : John Au-Yeung
Book Image

Vue.js 3 By Example

By: John Au-Yeung

Overview of this book

With its huge ecosystem and wide adoption, Vue is one of the leading frameworks thanks to its ease of use when developing applications. However, it can get challenging for aspiring Vue.js developers to make sense of the ecosystem and build meaningful applications. This book will help you understand how you can leverage Vue effectively to develop impressive apps quickly using its latest version – Vue 3.0. The book takes an example-based approach to help you get to grips with the basics of Vue 3 and create a simple application by exploring features such as components and directives. You'll then enhance your app building skills by learning how to test the app with Jest and Vue Test Utils. As you advance, you'll understand how to write non-web apps with Vue 3, create cross-platform desktop apps with the Electron plugin, and build a multi-purpose mobile app with Vue and Ionic. You'll also be able to develop web apps with Vue 3 that interact well with GraphQL APIs. Finally, you'll build a chat app that performs real-time communication using Vue 3 and Laravel. By the end of this Vue.js book, you'll have developed the skills you need to build real-world apps using Vue 3 by working through a range of projects.
Table of Contents (10 chapters)

Adding a photo display

Here, we add a search page so that we can search for photo entries using their names. To do that, we add the SearchPage.vue component file to our project's src/components folder.

The SearchPage.vue component is simpler than the PhotoForm component. It has one form element with one form field. The form field is used to accept a keyword from the user to search our photo collection. The input has the type attribute set to text, so we have a regular text input in our code. As with the other inputs, we bind the input value to a reactive property with the v-model directive. The id parameter is set so that we can use the for attribute with the label. The form also has a Search button, which has an input type set to submit:

<template>
  <div>
    <h1>Search</h1>
    <form @submit.prevent="submit">
      <div>
    ...