Learning Vue.js in Bangla Part-2: VueJS Declarative Programming, Instance, template and Conditional Rendering

Declarative Programming āĻ•āĻŋ?

Declarative Programming āĻšāĻšā§āĻ›ā§‡ Computer Programming āĻāĻ° structure āĻāĻŦāĻ‚ elements āĻ¤ā§ˆāĻ°āĻŋāĻ° āĻāĻ•āĻŸāĻž Programming Paradigm āĻ¯āĻž Program āĻŦāĻž Code āĻāĻ° control flow āĻ•ā§‡ describe āĻ¨āĻž āĻ•āĻ°ā§‡ āĻāĻ° outcome āĻŦāĻž solution āĻāĻ° āĻ‰āĻĒāĻ° āĻœā§‹āĻ° āĻĻā§‡āĻ“āĻ¯āĻŧāĻž āĻšāĻ¯āĻŧāĨ¤

Declarative Programming read āĻ•āĻ°āĻž āĻ…āĻ¨ā§‡āĻ• āĻ¸āĻšāĻœ , āĻ•āĻžāĻ°āĻŖ āĻāĻ–āĻžāĻ¨ā§‡ āĻ…āĻ¨ā§‡āĻ• lower level code āĻāĻŦāĻ‚ āĻ¤āĻžāĻ° āĻŦāĻŋāĻ¸ā§āĻ¤āĻžāĻ°āĻŋāĻ¤ hide āĻĨāĻžāĻ•ā§‡āĨ¤ āĻāĻ–āĻžāĻ¨ā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ°āĻ•ā§‡ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āĻ° āĻŦāĻž āĻ•ā§‹āĻĄā§‡āĻ° āĻ…āĻ¨ā§‡āĻ• lower level details āĻœāĻžāĻ¨āĻ¤ā§‡ āĻšāĻ¯āĻŧāĻ¨āĻžāĨ¤

Vue.js core āĻ†āĻŽāĻžāĻĻā§‡āĻ°āĻ•ā§‡ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ template syntax āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§‡āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ DOM āĻ declaratively render data āĻ¸āĻ°āĻŦāĻ°āĻžāĻš āĻ•āĻ°āĻ¤ā§‡ āĻ¸ā§āĻ¯ā§‹āĻ— āĻĻā§‡āĻ¯āĻŧāĨ¤ āĻ¨āĻŋāĻšā§‡āĻ° āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻĻā§‡āĻ–ā§āĻ¨:

<html>
   <head>
      <title>Declarative</title>
       <script type = "text/javascript" src = "https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
   </head>
   <body>
    <div id="app">
      {{ message }}
   </div>
      <script type = "text/javascript">
         var app = new Vue({
            el: '#app',
            data: {
               message: 'Hello Vue!'
               }
            })
 
      </script>
   </body>
</html>

āĻŦā§āĻ¯āĻžāĻ–ā§āĻ¯āĻž:

āĻ˛āĻ•ā§āĻˇā§āĻ¯ āĻ•āĻ°ā§āĻ¨ āĻ‰āĻĒāĻ°ā§‡āĻ° āĻ•ā§‹āĻĄā§‡ āĻ†āĻĒāĻ¨āĻŋ āĻœāĻžāĻ¨āĻ¤ā§‡ āĻĒāĻžāĻ°āĻ›ā§‡āĻ¨ āĻ¨āĻž , “Hello Vue” Message āĻŸāĻŋ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ā§‡āĻ° āĻĒāĻŋāĻ›āĻ¨ā§‡ āĻ•āĻŋ āĻ§āĻ°āĻŖā§‡āĻ° āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽ āĻŦāĻž āĻ˛āĻœāĻŋāĻ• āĻ•āĻžāĻœ āĻ•āĻ°āĻ¤ā§‡āĻ›ā§‡ , āĻ†āĻĒāĻ¨āĻŋ āĻļā§āĻ§ā§ āĻœā§‡āĻ¨ā§‡āĻ›ā§‡āĻ¨ Vue Instance āĻāĻ° Property el āĻāĻ° value āĻšāĻŋāĻ¸ā§‡āĻŦā§‡ āĻāĻ•āĻŸāĻž id attribute āĻĻāĻŋāĻ¤ā§‡ āĻšāĻŦā§‡ , āĻ…āĻ°ā§āĻĨāĻžā§Ž āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ Message āĻŸāĻŋ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻ•āĻ°āĻŦā§‡āĻ¨āĨ¤ āĻ†āĻ° āĻ•āĻŋ message āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻšāĻŦā§‡ message āĻĒā§āĻ°āĻĒāĻžāĻ°ā§āĻŸāĻŋ āĻāĻ° value āĻšāĻŋāĻ¸ā§‡āĻŦā§‡ āĻĻāĻŋāĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤

Vue Instances āĻ•āĻŋ?

VueJS āĻ Vue constructor function āĻĻāĻŋāĻ¯āĻŧā§‡ āĻ¤ā§ˆāĻ°āĻŋ Object āĻ•ā§‡ Vue Instance āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧāĨ¤ VueJS āĻ¨āĻŋāĻ¯āĻŧā§‡ āĻ•āĻžāĻœ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ†āĻŽāĻžāĻĻā§‡āĻ°āĻ•ā§‡ new Vue āĻĻāĻŋāĻ¯āĻŧā§‡ āĻāĻ•āĻŸāĻž Vue Instance āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡ , āĻ¯āĻž āĻšāĻŦā§‡ Vue āĻāĻ° root instance. āĻāĻŦāĻ‚ āĻāĻŸāĻŋ āĻāĻ•āĻŸāĻŋ Nested Tree āĻšāĻŋāĻ¸ā§‡āĻŦā§‡ āĻĨāĻžāĻ•ā§‡āĨ¤ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻ¸ā§āĻŦāĻ°ā§‚āĻĒ āĻāĻ•āĻŸāĻž todo application āĻ…āĻ¨ā§‡āĻ•āĻŸāĻž āĻāĻ‡āĻ°āĻ•āĻŽ āĻĨāĻžāĻ•āĻŦā§‡āĨ¤


Root Instance
└─ TodoList
├─ TodoItem
│ ├─ DeleteTodoButton
│ └─ EditTodoButton
└─ TodoListFooter
├─ ClearTodosButton
└─ TodoListStatistics


VueJS Instance Syntax

VueJS āĻ āĻ†āĻŽāĻžāĻĻā§‡āĻ°āĻ•ā§‡ new Vue āĻĻāĻŋāĻ¯āĻŧā§‡ Instance āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤ āĻ¨āĻŋāĻšā§‡ āĻ¸āĻŋāĻ¨āĻŸā§‡āĻ•ā§āĻ¸ āĻĻā§‡āĻ“āĻ¯āĻŧāĻž āĻšāĻ˛ā§‹ :

var app = new Vue({
   // options
})

āĻāĻŦāĻžāĻ° āĻšāĻ˛ā§āĻ¨ Vue Instance āĻĻāĻŋāĻ¯āĻŧā§‡ āĻāĻ•āĻŸāĻž āĻĒāĻ°āĻŋāĻĒā§‚āĻ°ā§āĻ¨ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻĻā§‡āĻ–āĻŋ :

<html>
   <head>
      <title>Instance</title>
       <script type = "text/javascript" src = "https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
   </head>
   <body>
      <div id = "info">
         <p><strong>Firstname :</strong> {{firstname}}</p>
         <p><strong>Lastname :</strong> {{lastname}}</p>
         <p>{{mydetails()}}</p>
      </div>
      <script type = "text/javascript">
         var  vm = new Vue({
            el: '#info',
            data: {
               firstname : "Masud",
               lastname  : "Alam",
               age    : 33
               },
            methods: {
               mydetails : function() {
                  return "I am "+this.firstname +" "+ this.lastname +" and I'm "+ this.age+ " Years Old";
            }
   }
})
      </script>
   </body>
</html>

Output

Vue Instance Result

āĻŦā§āĻ¯āĻžāĻ–ā§āĻ¯āĻž:

Vue Instance āĻ āĻĒā§āĻ°āĻĨāĻŽā§‡ el āĻ¨āĻžāĻŽā§‡ āĻāĻ•āĻŸāĻž āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻŸāĻžāĻ° āĻ†āĻ›ā§‡ , āĻ¯āĻžāĻ¤ā§‡ āĻ†āĻĒāĻ¨āĻžāĻ° DOM element āĻāĻ° id āĻŸāĻŋ āĻ°āĻžāĻ–āĻ¤ā§‡ āĻšāĻŦā§‡ , āĻ…āĻ°ā§āĻĨāĻžā§Ž āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻ†āĻĒāĻ¨āĻŋ āĻ°ā§‡āĻœāĻžāĻ˛ā§āĻŸ āĻĻā§‡āĻ–āĻ¤ā§‡ āĻšāĻžāĻ¨ āĻ¸ā§‡āĻ–āĻžāĻ¨āĻ•āĻžāĻ° id āĻŸāĻŋ āĨ¤ āĻ†āĻŽāĻ°āĻž āĻāĻ–āĻžāĻ¨ā§‡ el āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻŸāĻžāĻ°ā§‡ info āĻ¨āĻžāĻŽā§‡ Id āĻŸāĻŋ āĻ°ā§‡āĻ–ā§‡āĻ›āĻŋāĨ¤ āĻ†āĻ° āĻāĻ‡ Id āĻŸāĻŋ āĻ†āĻŽāĻ°āĻž āĻ†āĻŽāĻžāĻĻā§‡āĻ° div āĻ¨āĻžāĻŽāĻ• DOM āĻāĻ˛āĻŋāĻŽā§‡āĻ¨ā§āĻŸā§‡ āĻ¸ā§‡āĻŸ āĻ•āĻ°ā§‡āĻ›āĻŋāĨ¤

āĻ†āĻ° Vue Instance āĻ āĻĻā§āĻŦāĻŋāĻ¤ā§€āĻ¯āĻŧ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻŸāĻžāĻ° āĻŸāĻŋ āĻšāĻšā§āĻ›ā§‡ data. āĻ†āĻ° āĻāĻ° āĻ¨āĻžāĻŽ āĻĻāĻŋāĻ¯āĻŧā§‡āĻ‡ āĻŦā§āĻāĻž āĻ¯āĻžāĻšā§āĻ›ā§‡ , āĻāĻ–āĻžāĻ¨ā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ°āĻ•ā§‡ data āĻ…āĻ°ā§āĻĨāĻžā§Ž Instance āĻāĻ° āĻĒā§āĻ°āĻĒāĻžāĻ°ā§āĻŸāĻŋ āĻ—ā§āĻ˛ā§‹ āĻ°āĻžāĻ–āĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤ āĻ†āĻŽāĻ°āĻž āĻāĻ–āĻžāĻ¨ā§‡ firstname,lastname āĻāĻŦāĻ‚ age āĻ¨āĻžāĻŽā§‡ āĻ¤āĻŋāĻ¨āĻŸāĻž āĻĒā§āĻ°āĻĒāĻžāĻ°ā§āĻŸāĻŋ āĻ°ā§‡āĻ–ā§‡āĻ›āĻŋāĨ¤

āĻ†āĻ° Vue Instance āĻāĻ° āĻ¸āĻ°ā§āĻŦāĻļā§‡āĻˇ Parameter āĻŸāĻŋ āĻšāĻšā§āĻ›ā§‡ methods āĻ¯āĻž āĻĻāĻŋāĻ¯āĻŧā§‡ āĻ†āĻŽāĻ°āĻž data āĻ•ā§‡ āĻĒā§āĻ°āĻ¸ā§‡āĻ¸ āĻ•āĻ°ā§‡ āĻāĻ•āĻŸāĻž āĻ­ā§āĻ¯āĻžāĻ˛ā§ āĻ°āĻŋāĻŸāĻžāĻ°ā§āĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°āĻŦāĨ¤ āĻāĻ–āĻžāĻ¨ā§‡ āĻ†āĻŽāĻ°āĻž mydetails āĻ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻŽā§‡āĻĨāĻĄā§‡āĻ° process āĻĄāĻžāĻŸāĻž āĻ°āĻŋāĻŸāĻžāĻ°ā§āĻ¨ āĻ•āĻ°ā§‡āĻ›āĻŋāĨ¤

data āĻ•ā§‡ Object āĻšāĻŋāĻ¸ā§‡āĻŦā§‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° :

āĻ†āĻĒāĻ¨āĻŋ āĻšāĻžāĻ‡āĻ˛ā§‡ data āĻ¤ā§‡ value āĻšāĻŋāĻ¸ā§‡āĻŦā§‡ āĻāĻ•āĻŸāĻž Object assign āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°āĻŦā§‡āĻ¨āĨ¤ āĻ¨āĻŋāĻšā§‡āĻ° āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻĻā§‡āĻ–ā§āĻ¨ :

<html>
   <head>
      <title>Instance</title>
       <script type = "text/javascript" src = "https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
   </head>
   <body>
      <div id = "info">
         <p><strong>First name :</strong> {{fname}}</p>
         <p><strong>Last name :</strong> {{lname}}</p>
         <p>{{mydetails()}}</p>
      </div>
      <script type = "text/javascript">
         var student = { fname: "Masud", lname: "Alam", age:33}
         var  vm = new Vue({
            el: '#info',
            data:student,
            methods: {
               mydetails : function() {
                  return "I am "+student.fname +" "+ student.lname +" and I'm "+ student.age+ " Years Old";
            }
   }
})
      </script>
   </body>
</html>

Output

Vue Instance Result

Vue Instance Result

data āĻ•ā§‡ Method āĻšāĻŋāĻ¸ā§‡āĻŦā§‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° :

āĻ†āĻĒāĻ¨āĻŋ āĻšāĻžāĻ‡āĻ˛ā§‡ data āĻ¤ā§‡ value āĻšāĻŋāĻ¸ā§‡āĻŦā§‡ āĻāĻ•āĻŸāĻž Method assign āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°āĻŦā§‡āĻ¨āĨ¤ āĻ¨āĻŋāĻšā§‡āĻ° āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻĻā§‡āĻ–ā§āĻ¨ :

<html>
   <head>
      <title Instance</title>
       <script type = "text/javascript" src = "https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
   </head>
   <body>
      <div id = "info">
         <p><strong>First name :</strong> {{fname}}</p>
         <p><strong>Last name :</strong> {{lname}}</p>
         <p>{{mydetails()}}</p>
      </div>
      <script type = "text/javascript">
         var student = { fname: "Masud", lname: "Alam", age:33}
         var  vm = new Vue({
            el: '#info',
            data:function(){
               return student
            },
            methods: {
               mydetails : function() {
                  return "I am "+student.fname +" "+ student.lname +" and I'm "+ student.age+ " Years Old";
            }
   }
})
      </script>
   </body>
</html>
Vue Instance Result

Instance Lifecycle Hooks

āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ Vue instance āĻ¤ā§ˆāĻ°āĻŋ āĻšāĻ“āĻ¯āĻŧāĻžāĻ° āĻĒāĻ° āĻāĻŸāĻŋ āĻ§āĻžāĻĒā§‡ āĻ§āĻžāĻĒā§‡ āĻ¤āĻžāĻ° āĻ•āĻžāĻœ āĻ—ā§āĻ˛ā§‹ āĻļā§‡āĻˇ āĻ•āĻ°ā§‡āĨ¤ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻ¸ā§āĻŦāĻ°ā§‚āĻĒ , āĻāĻŸāĻŋ āĻ¯āĻĨāĻžāĻ•ā§āĻ°āĻŽā§‡ data observation āĻ¸ā§‡āĻŸāĻ†āĻĒ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻ¯āĻŧ, template āĻ•ā§‡ compile āĻ•āĻ°āĻ¤ā§‡ āĻšāĻ¯āĻŧ , DOM āĻ instance āĻ•ā§‡ mount āĻ•āĻ°ā§‡ āĻāĻŦāĻ‚ āĻ¯āĻ–āĻ¨ āĻ•ā§‹āĻ¨ā§‹ āĻĄāĻžāĻŸāĻž āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻšāĻ¯āĻŧ, āĻ¤āĻ–āĻ¨ DOM āĻ•ā§‡ Update āĻ•āĻ°ā§‡āĨ¤ āĻāĻ•āĻ‡āĻ­āĻžāĻŦā§‡ āĻāĻŸāĻŋ āĻĢāĻžāĻ™ā§āĻ•āĻļāĻ¨ āĻ—ā§āĻ˛ā§‹āĻ•ā§‡ āĻ°āĻžāĻ¨ āĻ•āĻ°ā§‡ , āĻ¯ā§‡āĻŸāĻžāĻ•ā§‡ āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧ lifecycle hooks, āĻ¯āĻž user āĻ•ā§‡ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ§āĻžāĻĒ āĻ—ā§āĻ˛ā§‹āĻ¤ā§‡ āĻ¤āĻžāĻ° āĻ¨āĻŋāĻœāĻ¸ā§āĻŦ āĻ•ā§‹āĻĄ āĻ—ā§āĻ˛ā§‹āĻ•ā§‡ āĻ¯ā§āĻ•ā§āĻ¤ āĻ•āĻ°āĻ¤ā§‡ āĻ¸ā§āĻ¯ā§‹āĻ— āĻĻā§‡āĻ¯āĻŧāĨ¤

Lifecycle Diagram

Vue Instance Lifecycle

Template Syntax

VueJS HTML-āĻ­āĻŋāĻ¤ā§āĻ¤āĻŋāĻ• template syntax āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻ¯āĻž āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ declaratively rendered DOM āĻ•ā§‡ Vue instance āĻ—ā§āĻ˛ā§‹āĻ° āĻ…āĻ§ā§€āĻ¨ā§‡ āĻĄā§‡āĻŸāĻžāĻ¤ā§‡ āĻ†āĻŦāĻĻā§āĻ§ āĻ•āĻ°āĻ¤ā§‡ āĻĻā§‡āĻ¯āĻŧāĨ¤ āĻ¸āĻŽāĻ¸ā§āĻ¤ Vue.js template āĻ—ā§āĻ˛āĻŋ valid HTML āĻ¯āĻž āĻ¸ā§āĻĒā§‡āĻ¸-āĻ•āĻŽāĻĒā§āĻ˛āĻžāĻ¯āĻŧā§‡āĻ¨ā§āĻŸ āĻŦā§āĻ°āĻžāĻ‰āĻœāĻžāĻ° āĻāĻŦāĻ‚ HTML Parser āĻĻā§āĻŦāĻžāĻ°āĻž parse āĻ•āĻ°āĻž āĻ¯āĻžāĻ¯āĻŧāĨ¤

Vue āĻ¤āĻžāĻ° template āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻāĻ•āĻ‡ āĻ›āĻžāĻ¤āĻžāĻ° āĻ¨āĻŋāĻšā§‡ Virtual DOM render function āĻ—ā§āĻ˛āĻŋāĻ¤ā§‡ compile āĻ•āĻ°ā§‡āĨ¤ reactivity system āĻāĻ° āĻ¸āĻžāĻĨā§‡ combine āĻ•āĻ°ā§‡ , Vue āĻ–ā§āĻŦāĻ‡ āĻŦā§āĻĻā§āĻ§āĻŋāĻŽāĻ¤ā§āĻ¤āĻžāĻ° āĻ¸āĻžāĻĨā§‡ āĻ¸ā§€āĻŽāĻŋāĻ¤ āĻ¸āĻ‚āĻ–ā§āĻ¯āĻ• component āĻ•ā§‡ re-render āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ–ā§āĻāĻœā§‡ āĻŦā§‡āĻ° āĻ•āĻ°ā§‡āĨ¤ āĻāĻŦāĻ‚ āĻ¯āĻ–āĻ¨ app state āĻšā§‡āĻžā§āĻœ āĻšāĻ¯āĻŧ āĻ¤āĻ–āĻ¨ āĻ¸ā§€āĻŽāĻŋāĻ¤ āĻ¸āĻ‚āĻ–ā§āĻ¯āĻ• DOM manipulation āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻ— āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ–ā§āĻāĻœā§‡ āĻŦā§‡āĻ° āĻ•āĻ°ā§‡āĨ¤

āĻ†āĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ Virtual DOM concepts āĻāĻ° āĻ¸āĻžāĻĨā§‡ āĻĒāĻ°āĻŋāĻšāĻŋāĻ¤ āĻšāĻ¯āĻŧā§‡ āĻĨāĻžāĻ•ā§‡āĻ¨, āĻāĻŦāĻ‚ JavaScript āĻ­āĻžāĻ˛ā§‹ āĻœā§‡āĻ¨ā§‡ āĻĨāĻžāĻ•ā§‡āĻ¨, āĻ¤āĻžāĻšāĻ˛ā§‡ āĻ†āĻĒāĻ¨āĻŋ template syntax āĻ—ā§āĻ˛ā§‹āĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§‡ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻ¨āĻŋāĻœā§‡āĻ‡ render function āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ…āĻ¤āĻŋāĻ°āĻŋāĻ•ā§āĻ¤ JSX support āĻ¨āĻŋāĻ¯āĻŧā§‡ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨āĨ¤

VueJS Text Output Template Syntax:

VueJS āĻ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ•ā§‹āĻ¨ā§‹ text āĻ†āĻ‰āĻŸāĻĒā§āĻŸ āĻĻā§‡āĻ–āĻžāĻ¨ā§‹āĻ° āĻœāĻ¨ā§āĻ¯ { } āĻ…āĻ°ā§āĻĨāĻžā§Ž double curly braces (āĻĻā§āĻŦāĻŋāĻ¤ā§€āĻ¯āĻŧ āĻŦāĻ¨ā§āĻ§āĻ¨ā§€) āĻāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ variable āĻāĻ° name āĻŸāĻŋ āĻĻāĻŋāĻ¤ā§‡ āĻšāĻ¯āĻŧāĨ¤ curly braces (āĻĻā§āĻŦāĻŋāĻ¤ā§€āĻ¯āĻŧ āĻŦāĻ¨ā§āĻ§āĻ¨ā§€) āĻ•ā§‡ āĻ†āĻŦāĻžāĻ° “Mustache” syntax āĻ“ āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧāĨ¤ āĻ¨āĻŋāĻšā§‡āĻ° āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻŸāĻŋ āĻĻā§‡āĻ–ā§āĻ¨ :

<html>
   <head>
      <title>Templates</title>
       <script type = "text/javascript" src = "https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
   </head>
   <body>
   <div id="vue_template">
      <h2>Welcome {{name}}!</h2>
   </div>
      <script type = "text/javascript">
         var app = new Vue({
            el: '#vue_template', 
              data: {
               name: "Evan You"
            }
         })
      </script>
   </body>
</html>

Output

Welcome Evan You!

āĻ¤āĻŦā§‡ āĻ†āĻĒāĻ¨āĻŋ āĻšāĻžāĻ‡āĻ˛ā§‡ VueJS āĻāĻ° v-text directive āĻ“ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨āĨ¤ āĻ†āĻ° v-text directive āĻŸāĻŋ āĻšā§āĻŦāĻšā§ {{}} āĻāĻ° āĻŽāĻ¤ā§‹āĻ‡ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡āĨ¤ āĻ…āĻ°ā§āĻĨāĻžā§Ž <div v-text=”content”></div> āĻāĻŸāĻŋ āĻšā§āĻŦāĻšā§ <div>{{ content }}</div> āĻāĻ° āĻŽāĻ¤ā§‹āĻ‡ āĻ†āĻ‰āĻŸāĻĒā§āĻŸ āĻĻāĻŋāĻŦā§‡āĨ¤ āĻ¨āĻŋāĻšā§‡āĻ° āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻŸāĻŋ āĻĻā§‡āĻ–ā§āĻ¨ :

<!DOCTYPE html>
<html lang="en">
<head>
   <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
     <div id="app">
         <div v-text="content"></div>
     </div>
     <script>
     new Vue ({
            el: '#app',
        data: {
                content: 'Hello World'
        }
             })
   </script>
 </body>
</html>

Output

Hello World

āĻ¯āĻ–āĻ¨ āĻ†āĻĒāĻ¨āĻŋ HTML markup āĻ•ā§‡ v-text āĻ āĻĒāĻžāĻ¸ āĻ•āĻ°āĻŦā§‡āĻ¨āĨ¤ āĻ¤āĻ–āĻ¨ āĻāĻŸāĻŋ HTML markup āĻ•ā§‡ HTML entities āĻ encode āĻ•āĻ°ā§‡ āĻ¨āĻŋāĻŦā§‡āĨ¤ āĻ¨āĻŋāĻšā§‡āĻ° āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻŸāĻŋ āĻĻā§‡āĻ–ā§āĻ¨ :

<!DOCTYPE html>
<html lang="en">
<head>
   <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
     <div id="app2">
         <div v-text="content"></div>
     </div>
     <script>
     new Vue ({
            el: '#app2',
        data: {
                content: '<h3<Hello World</h3>'
        }
             })
   </script>
 </body>
</html>

Output

<h3>Hello world</h3>

VueJS HTML Output Template Syntax:

VueJS āĻ āĻ¯ā§‡āĻ•ā§‹āĻ¨ā§‹ html āĻ†āĻ‰āĻŸāĻĒā§āĻŸ āĻĻā§‡āĻ–āĻžāĻ¨ā§‹āĻ° āĻœāĻ¨ā§āĻ¯ v-html directive āĻ“ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤ āĻ¨āĻŋāĻšā§‡āĻ° āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻŸāĻŋ āĻĻā§‡āĻ–ā§āĻ¨ :

<!DOCTYPE html>
<html lang="en">
<head>
   <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
     <div id="app">
       <div v-html="content"></div>
     </div>
     <script>
     new Vue ({
          el: '#app',
    data: {
            content: '<h2>Hello World</h2>'
    }
             })
   </script>
 </body>
</html>

Output

Hello World

VueJS āĻ Image āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ā§‡āĻ° Template Syntax:

VueJS āĻ āĻ¯ā§‡āĻ•ā§‹āĻ¨ā§‹ image āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ v-bind directive āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤ āĻāĻ–āĻžāĻ¨ā§‡ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ syntax (“Mustache” syntax) āĻ•āĻžāĻœ āĻ•āĻ°āĻŦā§‡āĻ¨āĻž āĨ¤ āĻšāĻ˛ā§āĻ¨ āĻĒā§āĻ°āĻĨāĻŽā§‡ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ template syntax āĻĻāĻŋāĻ¯āĻŧā§‡ āĻāĻ•āĻŸāĻž āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻĻā§‡āĻ“āĻ¯āĻŧāĻž āĻ¯āĻžāĻ•:

<html>
   <head>
      <title>VueJs Instance</title>
      <script type = "text/javascript" src = "https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
   </head>
   <body>
      <div id = "app">
         <h2>Firstname : {{firstname}}</h2>
         <h2>Lastname : {{lastname}}</h2>
         <div v-html = "htmlcontent"></div>
         <img src = "{{imgsrc}}" width = "300" height = "250" />
      </div>
      <script type="text/javascript">
         var vm = new Vue({
            el: '#app',
            data: {
               firstname : "Masud",
               lastname  : "Alam",
               htmlcontent : "<div><h2>Vue Js Template</h2></div>",
               imgsrc : "http://w3programmers.com/bangla/wp-content/uploads/2018/12/redrose.jpg"
   }
})
      </script>
   </body>
</html>
VueJS Image Template Syntax

āĻ˛āĻ•ā§āĻˇā§āĻ¯ āĻ•āĻ°ā§āĻ¨ , āĻ‡āĻŽā§‡āĻœāĻŸāĻŋ āĻĒāĻžāĻšā§āĻ›ā§‡āĻ¨āĻžāĨ¤

āĻāĻ–āĻ¨ v-bind directive āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻ‡āĻŽā§‡āĻœ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ā§‡āĻ° āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻŸāĻŋ āĻĻā§‡āĻ–āĻŦ :

<html>
   <head>
      <title>VueJs Instance</title>
      <script type = "text/javascript" src = "https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
   </head>
   <body>
      <div id = "app">
         <h2>Firstname : {{firstname}}</h2>
         <h2>Lastname : {{lastname}}</h2>
         <div v-html = "htmlcontent"></div>
         <img v-bind:src = "imgsrc" width = "300" height = "250" />
      </div>
      <script type="text/javascript">
         var vm = new Vue({
            el: '#app',
            data: {
               firstname : "Masud",
               lastname  : "Alam",
               htmlcontent : "<div><h2>Vue Js Template</h2></div>",
               imgsrc : "http://w3programmers.com/bangla/wp-content/uploads/2018/12/redrose.jpg"
   }
})
      </script>
   </body>
</html>

VueJS Image Template Syntax with v-bind

VueJS āĻ HTML Element āĻāĻ° Value show āĻ…āĻĨāĻŦāĻž hide toggling Template Syntax:

VueJS āĻ āĻ¯ā§‡āĻ•ā§‹āĻ¨ā§‹ html āĻāĻ° āĻāĻ˛āĻŋāĻŽā§‡āĻ¨ā§āĻŸ āĻāĻ° āĻ†āĻ‰āĻŸāĻĒā§āĻŸ āĻ•ā§‡ show āĻ…āĻĨāĻŦāĻž hide toggling āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ v-show directive āĻ“ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤ āĻ†āĻ° āĻāĻŸāĻŋ āĻŽā§‚āĻ˛āĻ¤ , CSS display property āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻ•āĻžāĻœāĻŸāĻŋ āĻ•āĻ°ā§‡āĨ¤ āĻ¤āĻŦā§‡ āĻāĻŸāĻŋ <template> element āĻŸāĻŋ āĻ¸āĻžāĻĒā§‹āĻ°ā§āĻŸ āĻ•āĻ°ā§‡āĻ¨āĻž āĻāĻŽāĻ¨āĻ•āĻŋ v-else āĻāĻŦāĻ‚ v-else-if āĻāĻ° āĻ¸āĻžāĻĨā§‡āĻ“ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡āĻ¨āĻžāĨ¤ āĻ¨āĻŋāĻšā§‡āĻ° āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻŸāĻŋ āĻĻā§‡āĻ–ā§āĻ¨ :

<!DOCTYPE html>
<html lang="en">
<head>
   <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
     <div id="app">
         <div v-show="show">Hello World!</div>
     </div>
     <script>
     new Vue ({
            el: '#app',
        data: {
                show: true
        }
             })
   </script>
 </body>
</html>

āĻ†āĻ°ā§‡āĻ•āĻŸāĻŋ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻĻā§‡āĻ–ā§āĻ¨ :

<!DOCTYPE html>
<html lang="en">
<head>
   <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
     <div id="app">
       <div v-show="show">Hello World!</div>
     </div>
     <script>
     new Vue ({
          el: '#app',
          data: {
                  show: false
          }
      })
   </script>
 </body>
</html>
vuejs show directive false

VueJS Conditional Rendering

VueJS v-if, v-else-if and v-else Directive

VueJS āĻ āĻ¯ā§‡āĻ•ā§‹āĻ¨ā§‹ html āĻāĻ° āĻāĻ˛āĻŋāĻŽā§‡āĻ¨ā§āĻŸ āĻāĻ° āĻ†āĻ‰āĻŸāĻĒā§āĻŸ āĻ•ā§‡ control āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ v-if,v-else-if,v-else āĻāĻ‡ directive āĻ—ā§āĻ˛ā§‹ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤ āĻ†āĻ° āĻāĻŸāĻŋ v-show āĻāĻ° āĻŽāĻ¤ā§‹āĻ‡ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡āĨ¤ āĻ¤āĻŦā§‡ āĻāĻŸāĻŋ <template> element āĻŸāĻŋ āĻ¸āĻžāĻĒā§‹āĻ°ā§āĻŸ āĻ•āĻ°ā§‡āĨ¤ āĻ¨āĻŋāĻšā§‡āĻ° v-if āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻŸāĻŋ āĻĻā§‡āĻ–ā§āĻ¨ :

<!DOCTYPE html>
<html lang="en">
<head>
   <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
     <div id="app">
         <div v-if="show">Hello World!</div>
     </div>
     <script>
     new Vue ({
            el: '#app',
        data: {
                show: false
        }
             })
   </script>
 </body>
</html>

āĻāĻ–āĻ¨ “Hello World” āĻ•āĻĨāĻžāĻŸāĻŋ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻ•āĻ°āĻŦā§‡āĻ¨āĻžāĨ¤ āĻ•āĻžāĻ°āĻŖ āĻāĻ–āĻžāĻ¨ā§‡ show āĻāĻ° āĻ­ā§āĻ¯āĻžāĻ˛ā§ false āĻ¸ā§‡āĻŸ āĻ•āĻ°āĻž āĻ†āĻ›ā§‡āĨ¤

vuejs if directive false

vuejs if directive false

āĻ†āĻ° āĻ†āĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ show āĻāĻ° āĻ­ā§āĻ¯āĻžāĻ˛ā§ true āĻ¸ā§‡āĻŸ āĻ•āĻ°ā§‡āĻ¨ , āĻ¤āĻžāĻšāĻ˛ā§‡ “Hello World” āĻ•āĻĨāĻžāĻŸāĻŋ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻ•āĻ°āĻŦā§‡āĨ¤

<!DOCTYPE html>
<html lang="en">
<head>
   <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
     <div id="app1">
       <div v-if="show">Hello World!</div>
     </div>
     <script>
     new Vue ({
          el: '#app1',
    data: {
            show: true
    }
             })
   </script>
 </body>
</html>
vuejs if directive true

āĻāĻŦāĻžāĻ° v-else-if āĻāĻŦāĻ‚ v-else āĻāĻ° āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻĻā§‡āĻ–āĻž āĻ¯āĻžāĻ•:

<html>
   <head>
      <title>VueJs v-if,v-else-if and v-else attribute</title>
       <script type = "text/javascript" src = "https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
   </head>
   <body>
  <div id="app-3">
    <div v-if="age>0 && age<=15">Your're Child</div>
    <div v-else-if="age>15 && age<=25">You're Young</div>
    <div v-else-if="age>25 && age<=40">You're Adult</div>
    <div v-else> You're Old man or not birth yet  </div>
  </div>
      <script type = "text/javascript">
         var app = new Vue({
            el: '#app-3',
           data: {
            age: 36,
            }
         });
 
      </script>
   </body>
</html>

Output

You’re Adult

āĻ†āĻ°ā§‹ āĻāĻ•āĻŸāĻŋ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻĻā§‡āĻ–ā§āĻ¨:

<html>
   <head>
      <title>VueJs v-if,v-else-if and v-else attribute</title>
       <script type = "text/javascript" src = "https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
   </head>
   <body>
  <div id="app-3">
    <template v-if="loginType === 'username'">
      <label>Username</label>
      <input placeholder="Enter your username">
    </template>
    <template v-else-if="loginType === 'key'">
      <label>Key</label>
      <input placeholder="Enter your Key">
    </template>
    <template v-else>
      <label>Email</label>
      <input placeholder="Enter your email address">
  </template>
  </div>
      <script type = "text/javascript">
         var app = new Vue({
            el: '#app-3',
           data: {
            loginType: 'username',
            }
         });
 
      </script>
   </body>
</html>

Output

Vue JS v-if, v-else-if and v-else

VueJS List Rendering

VueJS āĻ array āĻāĻŦāĻ‚ Object āĻ—ā§āĻ˛ā§‹āĻ•ā§‡ render āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ , List Rendereing āĻ—ā§āĻ˛ā§‹ āĻŦā§āĻ¯āĻŦāĻšā§ƒāĻ¤ āĻšāĻ¯āĻŧāĨ¤

VueJS v-for Directive

VueJS āĻ v-for directive āĻ†āĻŽāĻžāĻĻā§‡āĻ°āĻ•ā§‡ array āĻāĻ° item āĻ—ā§āĻ˛ā§‹āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ loop āĻšāĻžāĻ˛āĻžāĻ¨ā§‹āĻ° āĻ¸ā§āĻ¯ā§‹āĻ— āĻĻā§‡āĻ¯āĻŧāĨ¤ āĻ†āĻ° v-for āĻĻāĻŋāĻ¯āĻŧā§‡ āĻ¯ā§‡āĻ‡ loop āĻŸāĻŋ āĻšāĻžāĻ˛āĻžāĻŦā§‹ , āĻ¤āĻžāĻ°āĻœāĻ¨ā§āĻ¯ā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ°āĻ•ā§‡ v-for āĻāĻ° value āĻšāĻŋāĻ¸ā§‡āĻŦā§‡ item in list āĻāĻ‡ āĻ¸āĻŋāĻ¨āĻŸā§‡āĻ•ā§āĻ¸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡āĨ¤ āĻ…āĻ°ā§āĻĨāĻžā§Ž , āĻāĻ–āĻžāĻ¨ā§‡ list āĻŸāĻž āĻšāĻŦā§‡ array āĻāĻ° āĻ¨āĻžāĻŽ , āĻāĻŦāĻ‚ item āĻšāĻšā§āĻ›ā§‡ array element āĻāĻ° āĻšā§āĻ¯āĻžāĻ¨ā§āĻĄāĻ˛āĻžāĻ°āĨ¤ āĻšāĻ˛ā§āĻ¨ āĻāĻ•āĻŸāĻž āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻĻā§‡āĻ–āĻž āĻ¯āĻžāĻ•:

<html>
   <head>
      <title>VueJs v-for directive</title>
       <script type = "text/javascript" src = "https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
   </head>
   <body>
   <div id="app-4">
      <ol>
         <li v-for="todo in todos">
            {{ todo.text }}
         </li>
      </ol>
</div>
      <script type = "text/javascript">
        var app4 = new Vue({
         el: '#app-4',
         data: {
            todos: [
              { text: 'Learn JavaScript' },
              { text: 'Learn Vue' },
              { text: 'Build something awesome' }
            ]
         }
      })
      </script>
   </body>
</html>

Output

vuejs v-for

āĻ¤āĻŦā§‡ āĻ†āĻĒāĻ¨āĻŋ āĻšāĻžāĻ‡āĻ˛ā§‡ key āĻ—ā§āĻ˛ā§‹āĻ•ā§‡āĻ“ āĻĒā§āĻ°āĻŋāĻ¨ā§āĻŸ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨āĨ¤ āĻ¨āĻŋāĻšā§‡āĻ° āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻŸāĻŋ āĻĻā§‡āĻ–ā§āĻ¨:

<html>
   <head>
      <title>VueJs v-for directive</title>
       <script type = "text/javascript" src = "https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
   </head>
   <body>
   <div id="app-4">
      <ol>
         <li v-for="(todo,index) in todos">
          {{ parentMessage }} - {{ index }} - {{ todo.text }}
         </li>
      </ol>
</div>
      <script type = "text/javascript">
        var app4 = new Vue({
         el: '#app-4',
         data: {
            parentMessage:"Parent",
            todos: [
              { text: 'Learn JavaScript' },
              { text: 'Learn Vue' },
              { text: 'Build something awesome' }
            ]
         }
      })
      </script>
   </body>
</html>
Output
v-for with key

āĻāĻ›āĻžāĻĄāĻŧāĻž āĻ†āĻĒāĻ¨āĻŋ v-for āĻ ‘āĻ‡āĻ¨â€™ keyword āĻāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§‡ ‘of’ keyword āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨āĨ¤

<html>
   <head>
      <title>VueJs v-for directive</title>
       <script type = "text/javascript" src = "https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
   </head>
   <body>
   <div id="app-4">
      <ol>
         <li v-for="(todo,index) of todos">
            {{index}}=>{{ todo.text }}
         </li>
      </ol>
</div>
      <script type = "text/javascript">
        var app4 = new Vue({
         el: '#app-4',
         data: {
            parentMessage:"Parent",
            todos: [
              { text: 'Learn JavaScript' },
              { text: 'Learn Vue' },
              { text: 'Build something awesome' }
            ]
         }
      })
      </script>
   </body>
</html>
vuejs v-for with of keyword

Object āĻ v-for āĻāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°

<html>
   <head>
      <title>VueJs v-for directive</title>
       <script type = "text/javascript" src = "https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
   </head>
   <body>
   <div id="app-4">
      <ol>
         <li v-for="(info,index) in book">
          {{index}}:{{ info }}
         </li>
      </ol>
</div>
      <script type = "text/javascript">
        var app4 = new Vue({
         el: '#app-4',
         data: {
            book: {
              Title: 'PHP Beginning to Advance',
              Author: 'Masud Alam',
              Published: '2016-04-10'
              }
            }
      })
      </script>
   </body>
</html>

Output

v-for Object

āĻāĻ›āĻžāĻĄāĻŧāĻž āĻ†āĻĒāĻ¨āĻŋ Object āĻĨā§‡āĻ•ā§‡ āĻāĻ° property āĻ—ā§āĻ˛ā§‹āĻ° numerical index āĻ“ āĻŦā§‡āĻ° āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨āĨ¤

<html>
   <head>
      <title>VueJs v-for directive</title>
       <script type = "text/javascript" src = "https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
   </head>
   <body>
   <div id="app-4">
      <ol style="list-style: none;">
         <li v-for="(info,index,key) in book">
          {{key}}:{{index}}:{{ info }}
         </li>
      </ol>
</div>
      <script type = "text/javascript">
        var app4 = new Vue({
         el: '#app-4',
         data: {
            book: {
              Title: 'PHP Beginning to Advance',
              Author: 'Masud Alam',
              Published: '2016-04-10'
              }
            }
      })
      </script>
   </body>
</html>

Result

v-for with object key

v for āĻāĻ° āĻ¸āĻžāĻĨā§‡ v-if āĻāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° :

āĻ¯āĻ–āĻ¨ v-for āĻāĻŦāĻ‚ v-if āĻĻā§āĻŸā§‹āĻ‡ āĻāĻ•āĻ‡ node āĻ āĻŦā§āĻ¯āĻŦāĻšā§ƒāĻ¤ āĻšāĻ¯āĻŧ , āĻ¤āĻ–āĻ¨ v-for directive āĻŸāĻŋ v-if āĻĨā§‡āĻ•ā§‡ higher āĻĒā§āĻ°āĻžāĻ¯āĻŧā§‹āĻ°āĻŋāĻŸāĻŋ āĻ¤ā§‡ āĻĨāĻžāĻ•ā§‡āĨ¤ āĻ¯āĻžāĻ° āĻŽāĻžāĻ¨ā§‡ āĻšāĻ˛ā§‹ v-if āĻŸāĻŋ āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻ˛ā§āĻĒā§‡ āĻ†āĻ˛āĻžāĻĻāĻž āĻ­āĻžāĻŦā§‡ āĻ°āĻžāĻ¨ āĻšāĻŦā§‡āĨ¤ āĻ¨āĻŋāĻšā§‡āĻ° āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻŸāĻŋ āĻĻā§‡āĻ–ā§āĻ¨ :

<!DOCTYPE html>
<html lang="en">
<head>
   <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
     <ul id="app3">
        <li v-for="item in list" v-if="item.show">{{ item.name }}</li>
    </ul>
     <script>
     new Vue ({
            el: '#app3',
            data:{
                  list: [
                        { name: 'Apple', show: true}, 
                        { name: 'Mango', show: false}, 
                        { name: 'Banana', show: true}, 
                    ]
              }
             })
   </script>
 </body>
</html>

Output

Apple
Banana

āĻ˛āĻ•ā§āĻˇā§āĻ¯ āĻ•āĻ°ā§āĻ¨ , āĻāĻ–āĻžāĻ¨ā§‡ āĻ¸ā§‡āĻ‡ Item āĻ—ā§āĻ˛ā§‹āĻ‡ āĻ†āĻ¸āĻ›ā§‡ , āĻ¯ā§‡āĻ—ā§āĻ˛ā§‹āĻ° show āĻāĻ° value true āĻĻā§‡āĻ“āĻ¯āĻŧāĻž āĻ†āĻ›ā§‡āĨ¤

āĻ†āĻŽāĻ°āĻž āĻāĻ–āĻ¨ v-for āĻĻāĻŋāĻ¯āĻŧā§‡ array āĻ¤ā§‡ āĻĸā§āĻ•āĻžāĻ¨ā§‹ data āĻ—ā§āĻ˛ā§‹āĻ•ā§‡ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ā§‡āĻ° āĻāĻ•āĻŸāĻž practical āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻĻā§‡āĻ–āĻŦ

<!DOCTYPE html>
<html lang="en">
<head>
   <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
    <div id="app4">
      <p v-if="error" class="error">{{ error }}</p>
      <input type="text" placeholder="Enter your name" name="username" value="" v-model="username"  /><button type="button" @click="add">Click me</button>
      <ul>
        <li v-for="item in users">{{ item.name }}</li>
      </ul>
    </div>
     <script>
     new Vue ({
            el: '#app4',
            data:{
                    error:'',
                    username:'',
                    username1:'',
                    username2:'',
                    username3:'',
                    username:'',
                    users:[{"name":"Evan You"},{"name":"Masud Alam"},{"name":"Zunayed Khan"}],
            },
            methods: {
              add() {
                      if (!this.username)
                         {
                       this.error = 'Please enter your name';
                       return;
                    }
                   else
                        this.error = '';
                     this.users.push({'name':this.username});
                 this.username = '';
              },
            }
             })
   </script>
   <style scoped>
       .error {
          color:#c82829;
    }
   </style>
 </body>
</html>

Output

vfor with input

v-for āĻĻāĻŋāĻ¯āĻŧā§‡ Filtered/Sorted Results āĻ—ā§āĻ˛ā§‹ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ :

<html>
   <head>
      <title>v-for directive</title>
       <script type = "text/javascript" src = "https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
   </head>
   <body>
   <div id="app-4">
      <h2>Even Numbers</h2>
      <ul style="list-style: none;">
        <li v-for="n in evenNumbers">{{ n }}</li>
      </ul>
      <h3>Odd Numbers</h3>
      <ul style="list-style: none;">
        <li v-for="n in oddNumbers">{{ n }}</li>
      </ul>
</div>
      <script type = "text/javascript">
        var app4 = new Vue({
         el: '#app-4',
         data: {
          numbers: [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]
        },
        computed: {
          evenNumbers: function () {
            return this.numbers.filter(function (number) {
              return number % 2 === 0
            })
          },
         oddNumbers: function () {
            return this.numbers.filter(function (number) {
              return number % 2 === 1
            })
          }
        }
      })
      </script>
   </body>
</html>

Output

v-for āĻĻāĻŋāĻ¯āĻŧā§‡ āĻāĻ•āĻŸāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ range āĻāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ Numbers āĻ—ā§āĻ˛ā§‹ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ :

<html>
   <head>
      <title>v-for directive</title>
       <script type = "text/javascript" src = "https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
   </head>
   <body>
   <div id="app-4">
      <div>
  <span v-for="n in 10">{{ n }} </span>
</div>
</div>
      <script type = "text/javascript">
        var app4 = new Vue({
         el: '#app-4',
      })
      </script>
   </body>
</html>

Output

Range Number