[JAVA] [Développement SPA avec Rails x Vue] Apprenez les bases de Vue.js (Vue d'ensemble de vue.js, syntaxe du modèle)

Contexte

Mon objectif est de changer d'emploi d'inexpérimenté à ingénieur. J'ai décidé d'étudier le développement SPA en utilisant l'API Rails et vue.js pour créer un bon portefeuille.

Le niveau actuel de connaissances est le développement d'applications simples à l'aide de Ruby on rails, la gestion des versions à l'aide de git et le déploiement à l'aide d'heroku. J'espère que cela sera utile à ceux qui envisagent d'essayer vue.js dans leur propre mémorandum et au même niveau.

Objectifs de cet article

Comprendre les bases de vue et la grammaire de base de vue

【référence】 Cet article concerne le cours d'udemy "Pack complet Super Vue.js 2 - Plus besoin d'acheter d'autres matériaux! (Y compris Vue Router et Vuex) »est le résultat de ce que vous avez appris. Par conséquent, le code, etc. est basé sur le contenu du cours.

【Article associé】 [Développement SPA avec Rails x Vue] Apprenez les bases de Vue.js (Présentation de vue.js / syntaxe du template) [Développement SPA avec Rails x Vue] Apprenez les bases de Vue.js (composant d'instance vue VueCLI) [Développement SPA avec Rails x Vue] Apprenez les bases de Vue.js (transitions de directives personnalisées, etc.) [Développement SPA avec Rails x Vue] En savoir plus sur Vue Router / Vuex

table des matières

  1. À propos des tendances JavaScript
  2. À propos de Vue.js
  3. À propos du SPA
  4. À propos de la grammaire de base de Vue.js

Allons vite!

1. À propos des tendances JavaScript

javascript est implémenté dans la plupart des applications Web et est facile à écrire De nos jours, les trois principaux cadres, vue, réaction et angulaire, attirent l'attention. Si vous regardez les tendances, vous pouvez voir que jQuery est en déclin, mais les trois principaux frameworks sont à la hausse.

【référence】 Voir dans la tendance laquelle de Vue.js vs React vs Angular choisir Qu'est-ce que jQuery? Pourquoi ne pas l'utiliser (ou ne pas l'utiliser)?

Cette fois, je voudrais sélectionner vue, qui a un faible coût d'apprentissage et peut être facilement introduit même dans le développement à petite échelle.


2. À propos de Vue.js

En plus de react, vue.js est adopté par de nombreuses entreprises au Japon. Il y a quatre raisons principales pour lesquelles vue.js est adopté par de nombreuses entreprises.

I. Facile à installer et flexible

Par exemple, dans rails 6.0, vous pouvez utiliser vue.js en installant webpacker pour vue.js et en n'écrivant qu'une seule ligne. En d'autres termes, il est possible d'utiliser partiellement vue.js pour les applications de rails, et vue.js peut être principalement développé pour le développement d'API.

Ii. Faible coût d'apprentissage

La fonctionnalité de vue.js est que même les débutants peuvent facilement l'apprendre tant qu'ils comprennent HTML, CSS et javascript. De plus, la formule vue.js prend en charge le japonais, donc si vous avez un problème, vous pouvez généralement le résoudre en regardant la formule.

III. Développement efficace

vue.js facilite l'assemblage des applications en unités appelées composants. Les composants sont comme des pièces qui composent l'interface utilisateur, et en les rendant communs, ils peuvent être utilisés encore et encore.

Iv. Le DOM virtuel, les types crpit, etc. peuvent être utilisés

Le framework javascript devient standard pour utiliser des technologies telles que le DOM virtuel et Typescript. Étant donné que vue.js prend également en charge le DOM virtuel et le typographie, une implémentation plus rapide et plus extensible est possible.

【référence】 (vue.js official) Introduction -Qu'est-ce que vue.js? (vue.js official) Comparaison avec d'autres frameworks

3. À propos du SPA

SPA est une abréviation de «Application à une seule page» et, comme son nom l'indique, c'est une application qui change le contenu sur une seule page. Des exemples spécifiques incluent slack et google map. Les deux vous permettent d'obtenir de nouvelles informations sans transition de pages (en laissant une seule page). SPA est un mécanisme qui a attiré l'attention ces dernières années car le temps de transition des pages est court et l'UX est augmenté.

Vous pouvez facilement créer un SPA en utilisant vue.js.

【référence】 Principes de base du SPA (application à page unique)


4. À propos de la grammaire de base de Vue.js

Vérifions maintenant la grammaire de base de vue.js.

■ À propos des fichiers

Il existe trois types d'installation vue.js: "CDN", "npm" et "vuecli". "CDN" est la méthode décrite dans la balise body de html, "npm" est la méthode d'utilisation du gestionnaire de packages de node.js et "vuecli" est la méthode d'utilisation de la commande vue dans le terminal. Cette fois, j'utiliserai "CDN". Créez le fichier index.html de manière appropriée et décrivez-le comme suit.

index.html


<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
  <div id="app">
  </div>
  <script>
    new Vue({
      el: "#app",
    })
  </script>
</body>
</html>

Ce qui précède est la préparation du fichier pour l'utilisation de vue.js. J'expliquerai la grammaire détaillée de la suite, mais j'omettrai tout dans la balise head, la balise body et la partie appel CDN.

■ Appelez la valeur de vue.js

index.html


<div id="app">
 <p>{{message}}</p>
</div>

<script>
  new Vue({
    el: "#app",
    data: {
       message: "HelloWorld",
    }
  })
</script>

■ Appeler une méthode

index.html


<div id="app">
 <p>{{greeting()}}</p>
</div>

<script>
  new Vue({
    el: "#app",
    data: {
       message: "HelloWorld",
    },
    methods: {
      greeting: function(){
         return this.message;
      }
    }
  })
</script>

■v-bind

index.html


<div id="app">
 <a v-bind:href="url"> qiita <a>
</div>

<script>
  new Vue({
    el: "#app",
    data: {
       url: "https://qiita.com/"
    }
  })
</script>

--Les choses qui commencent par "v-" sont appelées directives et font référence aux attributs de vue.js qui peuvent être utilisés dans le modèle.

■v-on

index.html


<div id="app">
 <p>num<p>
  <button v-on:click="countUp"> COUNT UP </button>
</div>

<script>
new Vue({
  el: "#app",
    data: {
       num: 0
    },
    methods: {
      countUp: function() {
          this.num += 1
      }
    }
  })
</script>

■ Objet / argument d'événement

index.html


<div id="app">
 <p>num<p>
  <button v-on:click="countUp(4)"> COUNT UP </button>
 <p v-on:mousemove="change($event, 3)"> Change 
  <span v-on:mousemove.stop> No Change </span> <p>
 <P> {{x}}: {{y}}
</div>

<script>
  new Vue({
    el: "#app",
    data: {
       num: 0
    },
    methods: {
      countUp: function(times) {
          this.num += 1 * times
       },
      change: function(event, square) {
          this.x = event.clientX * square
          this.y = event.clientY * square
    }
  })
</script>

--Il est également possible de prendre un argument comme un javascript normal.

■v-model

index.html


<div id="app">
 <input type="text" v-model="message">
 <p>{{message}} <p>
</div>

<script>
  new Vue({
    el: "#app",
      data: {
        message: "hello!"
      }
   })
</script>

■computed

index.html


<div id="app">
 <button @click="count += 1"> COUNT UP </button>
 <p>{{lessThanThree}} <p>
</div>

<script>
  new Vue({
    el: "#app",
      data: {
        count: 0
      },
    computed: {
      lessThanThree: function() {
        return this.count >= 3 ? "3 ou plus" : "Moins de 3"
     }
  })
</script>

■watcher

index.html


<div id="app">
 <button @click="count += 1"> COUNT UP </button>
 <p>{{lessThanThree}} <p>
</div>

<script>
  new Vue({
    el: "#app",
      data: {
        count: 0
      },
    computed: {
      lessThanThree: function() {
        return this.count >= 3 ? "3 ou plus" : "Moins de 3"
    },
    watch: {
       count: function() {
         var vm = this;
         setTimeout(function(){
           vm.count = 0
         }, 3000)
       }
    }
  })
</script>

―― «Watch» est un processus asynchrone.

■ Reliure de style classe

index.html


<div id="app">
 <p :class="classObject"> Hello </p>
 <button @click="Active = !Active"> Change </button>
  <h1 :style="styleObject"> Hello </h1>
</div>

<script>
  new Vue({
    el: "#app",
      data: {
        styleobject: {
           color: 'red',
           'background-color': 'blue'
        },
        Active: true
      },
      computed: {
        classObject: function(){
          return{
            red: this.Active, 
            'bg-blue': !this.Active}
        }
      }
  })
</script>

■v-if

index.html


<div id="app">
 <template v-if="ok">
   <p>Hello</p>
   <p>Goodbye</p>
 </template>
 <template v-else-if="maybe">
   <p>good morning</p>
   <p>good night</p>
 </template>
 <p v-else="ok"> sorry </p> 
</div>

<script>
  new Vue({
    el: "#app",
      data: {
        ok: true,
        maybe: true
      }
  })
</script>

―― «Template» a presque le même rôle que div, mais la fonctionnalité est que «template» n'est pas affiché lorsque vous l'affichez réellement sur un navigateur.

■v-for

index.html


<div id="app">
 <ul>
  <div v-for="fruit in fruits" :key="fruit">
    <p>{{fruit}}</p>
  <hr>
  </div>
 </ul>
</div>

<script>
  new Vue({
    el: "#app",
      data: {
        fruits: ['pomme', 'Les pêches', 'Grain de raisin']
      }
  })
</script>

C'est la fin des bases de la syntaxe des modèles. La prochaine fois, j'écrirai un article sur les instants et les composants de vue. Bien que l'affichage sur le navigateur soit omis, il est recommandé de le vérifier si nécessaire.
# Résumé / impression Je pensais que vue.js devait être intuitif, mais je sentais que comprendre le javascript était très important. Je voudrais donc revoir javascript à nouveau, en particulier comment l'utiliser et comment utiliser les fonctions.

référence

【udemy】 "Pack complet Super Vue.js 2 - Plus besoin d'acheter d'autres matériaux! (Y compris Vue Router et Vuex) » → Recommandé! Cet article est également basé sur ce que j'ai appris dans ce cours. Il explique soigneusement les bases, et comme il touche au développement SPA, cela seul peut couvrir les bases de la vue.

"Vue JS Primer Definitive Edition! Développement Web sans jQuery --- Apprendre systématiquement de l'introduction au développement d'applications avec des vidéos » → J'ai pensé qu'il serait bon d'expliquer la grammaire en détail.

Recommended Posts

[Développement SPA avec Rails x Vue] Apprenez les bases de Vue.js (Vue d'ensemble de vue.js, syntaxe du modèle)
À peu près le flux de développement d'applications Web avec Rails.
À propos des bases du développement Android
[Challenge CircleCI from 0] Apprenez les bases de CircleCI
[Explication approximative] Comment séparer le fonctionnement de l'environnement de production et de l'environnement de développement avec Rails
Relisez le guide des rails (vue d'ensemble du contrôleur d'action)