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> āĻāϰ āĻŽāϤ⧋āχ āφāωāϟāĻĒ⧁āϟ āĻĻāĻŋāĻŦ⧇āĨ¤ āύāĻŋāĻšā§‡āϰ āωāĻĻāĻžāĻšāϰāĻŖāϟāĻŋ āĻĻ⧇āϖ⧁āύ :

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

Output

Hello World

āϝāĻ–āύ āφāĻĒāύāĻŋ HTML markup āϕ⧇ v-text āĻ āĻĒāĻžāϏ āĻ•āϰāĻŦ⧇āύāĨ¤ āϤāĻ–āύ āĻāϟāĻŋ HTML markup āϕ⧇ HTML entities āĻ encode āĻ•āϰ⧇ āύāĻŋāĻŦ⧇āĨ¤ āύāĻŋāĻšā§‡āϰ āωāĻĻāĻžāĻšāϰāĻŖāϟāĻŋ āĻĻ⧇āϖ⧁āύ :

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

Output

<h3>Hello world</h3>

VueJS HTML Output Template Syntax:

VueJS āĻ āϝ⧇āϕ⧋āύ⧋ html āφāωāϟāĻĒ⧁āϟ āĻĻ⧇āĻ–āĻžāύ⧋āϰ āϜāĻ¨ā§āϝ v-html directive āĻ“ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤ āύāĻŋāĻšā§‡āϰ āωāĻĻāĻžāĻšāϰāĻŖāϟāĻŋ āĻĻ⧇āϖ⧁āύ :

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

Output

Hello World

VueJS āĻ Image āĻĒā§āϰāĻĻāĻ°ā§āĻļāύ⧇āϰ Template Syntax:

VueJS āĻ āϝ⧇āϕ⧋āύ⧋ image āĻĒā§āϰāĻĻāĻ°ā§āĻļāύ⧇āϰ āϜāĻ¨ā§āϝ v-bind directive āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤ āĻāĻ–āĻžāύ⧇ āϏāĻžāϧāĻžāϰāĻŖ syntax (“Mustache” syntax) āĻ•āĻžāϜ āĻ•āϰāĻŦ⧇āύāĻž āĨ¤ āϚāϞ⧁āύ āĻĒā§āϰāĻĨāĻŽā§‡ āϏāĻžāϧāĻžāϰāĻŖ template syntax āĻĻāĻŋāϝāĻŧ⧇ āĻāĻ•āϟāĻž āωāĻĻāĻžāĻšāϰāĻŖ āĻĻ⧇āĻ“āϝāĻŧāĻž āϝāĻžāĻ•:

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

āϞāĻ•ā§āĻˇā§āϝ āĻ•āϰ⧁āύ , āχāĻŽā§‡āϜāϟāĻŋ āĻĒāĻžāĻšā§āϛ⧇āύāĻžāĨ¤

āĻāĻ–āύ v-bind directive āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āχāĻŽā§‡āϜ āĻĒā§āϰāĻĻāĻ°ā§āĻļāύ⧇āϰ āωāĻĻāĻžāĻšāϰāĻŖāϟāĻŋ āĻĻ⧇āĻ–āĻŦ :

&lt;html>
   &lt;head>
      &lt;title>VueJs Instance&lt;/title>
      &lt;script type = "text/javascript" src = "https://cdn.jsdelivr.net/npm/vue/dist/vue.js">&lt;/script>
   &lt;/head>
   &lt;body>
      &lt;div id = "app">
         &lt;h2>Firstname : {{firstname}}&lt;/h2>
         &lt;h2>Lastname : {{lastname}}&lt;/h2>
         &lt;div v-html = "htmlcontent">&lt;/div>
         &lt;img v-bind:src = "imgsrc" width = "300" height = "250" />
      &lt;/div>
      &lt;script type="text/javascript">
         var vm = new Vue({
            el: '#app',
            data: {
               firstname : "Masud",
               lastname  : "Alam",
               htmlcontent : "&lt;div>&lt;h2>Vue Js Template&lt;/h2>&lt;/div>",
               imgsrc : "http://w3programmers.com/bangla/wp-content/uploads/2018/12/redrose.jpg"
   }
})
      &lt;/script>
   &lt;/body>
&lt;/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 āĻāϰ āϏāĻžāĻĨ⧇āĻ“ āĻ•āĻžāϜ āĻ•āϰ⧇āύāĻžāĨ¤ āύāĻŋāĻšā§‡āϰ āωāĻĻāĻžāĻšāϰāĻŖāϟāĻŋ āĻĻ⧇āϖ⧁āύ :

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

āφāϰ⧇āĻ•āϟāĻŋ āωāĻĻāĻžāĻšāϰāĻŖ āĻĻ⧇āϖ⧁āύ :

&lt;!DOCTYPE html>
&lt;html lang="en">
&lt;head>
   &lt;script type="text/javascript" src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js">&lt;/script>
&lt;/head>
&lt;body>
     &lt;div id="app">
       &lt;div v-show="show">Hello World!&lt;/div>
     &lt;/div>
     &lt;script>
     new Vue ({
          el: '#app',
          data: {
                  show: false
          }
      })
   &lt;/script>
 &lt;/body>
&lt;/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 āωāĻĻāĻžāĻšāϰāĻŖāϟāĻŋ āĻĻ⧇āϖ⧁āύ :

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

āĻāĻ–āύ “Hello World” āĻ•āĻĨāĻžāϟāĻŋ āĻĒā§āϰāĻĻāĻ°ā§āĻļāύ āĻ•āϰāĻŦ⧇āύāĻžāĨ¤ āĻ•āĻžāϰāĻŖ āĻāĻ–āĻžāύ⧇ show āĻāϰ āĻ­ā§āϝāĻžāϞ⧁ false āϏ⧇āϟ āĻ•āϰāĻž āφāϛ⧇āĨ¤

vuejs if directive false

vuejs if directive false

āφāϰ āφāĻĒāύāĻŋ āϝāĻĻāĻŋ show āĻāϰ āĻ­ā§āϝāĻžāϞ⧁ true āϏ⧇āϟ āĻ•āϰ⧇āύ , āϤāĻžāĻšāϞ⧇ “Hello World” āĻ•āĻĨāĻžāϟāĻŋ āĻĒā§āϰāĻĻāĻ°ā§āĻļāύ āĻ•āϰāĻŦ⧇āĨ¤

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

āĻāĻŦāĻžāϰ v-else-if āĻāĻŦāĻ‚ v-else āĻāϰ āωāĻĻāĻžāĻšāϰāĻŖ āĻĻ⧇āĻ–āĻž āϝāĻžāĻ•:

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

Output

You’re Adult

āφāϰ⧋ āĻāĻ•āϟāĻŋ āωāĻĻāĻžāĻšāϰāĻŖ āĻĻ⧇āϖ⧁āύ:

&lt;html>
   &lt;head>
      &lt;title>VueJs v-if,v-else-if and v-else attribute&lt;/title>
       &lt;script type = "text/javascript" src = "https://cdn.jsdelivr.net/npm/vue/dist/vue.js">&lt;/script>
   &lt;/head>
   &lt;body>
  &lt;div id="app-3">
    &lt;template v-if="loginType === 'username'">
      &lt;label>Username&lt;/label>
      &lt;input placeholder="Enter your username">
    &lt;/template>
    &lt;template v-else-if="loginType === 'key'">
      &lt;label>Key&lt;/label>
      &lt;input placeholder="Enter your Key">
    &lt;/template>
    &lt;template v-else>
      &lt;label>Email&lt;/label>
      &lt;input placeholder="Enter your email address">
  &lt;/template>
  &lt;/div>
      &lt;script type = "text/javascript">
         var app = new Vue({
            el: '#app-3',
           data: {
            loginType: 'username',
            }
         });
 
      &lt;/script>
   &lt;/body>
&lt;/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 āĻāϰ āĻšā§āϝāĻžāĻ¨ā§āĻĄāϞāĻžāϰāĨ¤ āϚāϞ⧁āύ āĻāĻ•āϟāĻž āωāĻĻāĻžāĻšāϰāĻŖ āĻĻ⧇āĻ–āĻž āϝāĻžāĻ•:

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

Output

vuejs v-for

āϤāĻŦ⧇ āφāĻĒāύāĻŋ āϚāĻžāχāϞ⧇ key āϗ⧁āϞ⧋āϕ⧇āĻ“ āĻĒā§āϰāĻŋāĻ¨ā§āϟ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύāĨ¤ āύāĻŋāĻšā§‡āϰ āωāĻĻāĻžāĻšāϰāĻŖāϟāĻŋ āĻĻ⧇āϖ⧁āύ:

&lt;html>
   &lt;head>
      &lt;title>VueJs v-for directive&lt;/title>
       &lt;script type = "text/javascript" src = "https://cdn.jsdelivr.net/npm/vue/dist/vue.js">&lt;/script>
   &lt;/head>
   &lt;body>
   &lt;div id="app-4">
      &lt;ol>
         &lt;li v-for="(todo,index) in todos">
          {{ parentMessage }} - {{ index }} - {{ todo.text }}
         &lt;/li>
      &lt;/ol>
&lt;/div>
      &lt;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' }
            ]
         }
      })
      &lt;/script>
   &lt;/body>
&lt;/html>
Output
v-for with key

āĻāĻ›āĻžāĻĄāĻŧāĻž āφāĻĒāύāĻŋ v-for āĻ ‘āχāĻ¨â€™ keyword āĻāϰ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤ⧇ ‘of’ keyword āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύāĨ¤

&lt;html>
   &lt;head>
      &lt;title>VueJs v-for directive&lt;/title>
       &lt;script type = "text/javascript" src = "https://cdn.jsdelivr.net/npm/vue/dist/vue.js">&lt;/script>
   &lt;/head>
   &lt;body>
   &lt;div id="app-4">
      &lt;ol>
         &lt;li v-for="(todo,index) of todos">
            {{index}}=>{{ todo.text }}
         &lt;/li>
      &lt;/ol>
&lt;/div>
      &lt;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' }
            ]
         }
      })
      &lt;/script>
   &lt;/body>
&lt;/html>
vuejs v-for with of keyword

Object āĻ v-for āĻāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ

&lt;html>
   &lt;head>
      &lt;title>VueJs v-for directive&lt;/title>
       &lt;script type = "text/javascript" src = "https://cdn.jsdelivr.net/npm/vue/dist/vue.js">&lt;/script>
   &lt;/head>
   &lt;body>
   &lt;div id="app-4">
      &lt;ol>
         &lt;li v-for="(info,index) in book">
          {{index}}:{{ info }}
         &lt;/li>
      &lt;/ol>
&lt;/div>
      &lt;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'
              }
            }
      })
      &lt;/script>
   &lt;/body>
&lt;/html>

Output

v-for Object

āĻāĻ›āĻžāĻĄāĻŧāĻž āφāĻĒāύāĻŋ Object āĻĨ⧇āϕ⧇ āĻāϰ property āϗ⧁āϞ⧋āϰ numerical index āĻ“ āĻŦ⧇āϰ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύāĨ¤

&lt;html>
   &lt;head>
      &lt;title>VueJs v-for directive&lt;/title>
       &lt;script type = "text/javascript" src = "https://cdn.jsdelivr.net/npm/vue/dist/vue.js">&lt;/script>
   &lt;/head>
   &lt;body>
   &lt;div id="app-4">
      &lt;ol style="list-style: none;">
         &lt;li v-for="(info,index,key) in book">
          {{key}}:{{index}}:{{ info }}
         &lt;/li>
      &lt;/ol>
&lt;/div>
      &lt;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'
              }
            }
      })
      &lt;/script>
   &lt;/body>
&lt;/html>

Result

v-for with object key

v for āĻāϰ āϏāĻžāĻĨ⧇ v-if āĻāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ :

āϝāĻ–āύ v-for āĻāĻŦāĻ‚ v-if āĻĻ⧁āĻŸā§‹āχ āĻāĻ•āχ node āĻ āĻŦā§āϝāĻŦāĻšā§ƒāϤ āĻšāϝāĻŧ , āϤāĻ–āύ v-for directive āϟāĻŋ v-if āĻĨ⧇āϕ⧇ higher āĻĒā§āϰāĻžāϝāĻŧā§‹āϰāĻŋāϟāĻŋ āϤ⧇ āĻĨāĻžāϕ⧇āĨ¤ āϝāĻžāϰ āĻŽāĻžāύ⧇ āĻšāϞ⧋ v-if āϟāĻŋ āĻĒā§āϰāϤāĻŋāϟāĻŋ āϞ⧁āĻĒ⧇ āφāϞāĻžāĻĻāĻž āĻ­āĻžāĻŦ⧇ āϰāĻžāύ āĻšāĻŦ⧇āĨ¤ āύāĻŋāĻšā§‡āϰ āωāĻĻāĻžāĻšāϰāĻŖāϟāĻŋ āĻĻ⧇āϖ⧁āύ :

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

Output

Apple
Banana

āϞāĻ•ā§āĻˇā§āϝ āĻ•āϰ⧁āύ , āĻāĻ–āĻžāύ⧇ āϏ⧇āχ Item āϗ⧁āϞ⧋āχ āφāϏāϛ⧇ , āϝ⧇āϗ⧁āϞ⧋āϰ show āĻāϰ value true āĻĻ⧇āĻ“āϝāĻŧāĻž āφāϛ⧇āĨ¤

āφāĻŽāϰāĻž āĻāĻ–āύ v-for āĻĻāĻŋāϝāĻŧ⧇ array āϤ⧇ āĻĸ⧁āĻ•āĻžāύ⧋ data āϗ⧁āϞ⧋āϕ⧇ āĻĒā§āϰāĻĻāĻ°ā§āĻļāύ⧇āϰ āĻāĻ•āϟāĻž practical āωāĻĻāĻžāĻšāϰāĻŖ āĻĻ⧇āĻ–āĻŦ

&lt;!DOCTYPE html>
&lt;html lang="en">
&lt;head>
   &lt;script type="text/javascript" src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js">&lt;/script>
&lt;/head>
&lt;body>
    &lt;div id="app4">
      &lt;p v-if="error" class="error">{{ error }}&lt;/p>
      &lt;input type="text" placeholder="Enter your name" name="username" value="" v-model="username"  />&lt;button type="button" @click="add">Click me&lt;/button>
      &lt;ul>
        &lt;li v-for="item in users">{{ item.name }}&lt;/li>
      &lt;/ul>
    &lt;/div>
     &lt;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 = '';
              },
            }
             })
   &lt;/script>
   &lt;style scoped>
       .error {
          color:#c82829;
    }
   &lt;/style>
 &lt;/body>
&lt;/html>

Output

vfor with input

v-for āĻĻāĻŋāϝāĻŧ⧇ Filtered/Sorted Results āϗ⧁āϞ⧋ āĻĒā§āϰāĻĻāĻ°ā§āĻļāύ :

&lt;html>
   &lt;head>
      &lt;title>v-for directive&lt;/title>
       &lt;script type = "text/javascript" src = "https://cdn.jsdelivr.net/npm/vue/dist/vue.js">&lt;/script>
   &lt;/head>
   &lt;body>
   &lt;div id="app-4">
      &lt;h2>Even Numbers&lt;/h2>
      &lt;ul style="list-style: none;">
        &lt;li v-for="n in evenNumbers">{{ n }}&lt;/li>
      &lt;/ul>
      &lt;h3>Odd Numbers&lt;/h3>
      &lt;ul style="list-style: none;">
        &lt;li v-for="n in oddNumbers">{{ n }}&lt;/li>
      &lt;/ul>
&lt;/div>
      &lt;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
            })
          }
        }
      })
      &lt;/script>
   &lt;/body>
&lt;/html>

Output

v-for āĻĻāĻŋāϝāĻŧ⧇ āĻāĻ•āϟāĻŋ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ range āĻāϰ āĻŽāĻ§ā§āϝ⧇ Numbers āϗ⧁āϞ⧋ āĻĒā§āϰāĻĻāĻ°ā§āĻļāύ :

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

Output

Range Number