
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 āĻ āĻĒā§āϰāĻĨāĻŽā§ 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
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>

Instance Lifecycle Hooks
āĻĒā§āϰāϤāĻŋāĻāĻŋ Vue instance āϤā§āϰāĻŋ āĻšāĻāϝāĻŧāĻžāϰ āĻĒāϰ āĻāĻāĻŋ āϧāĻžāĻĒā§ āϧāĻžāĻĒā§ āϤāĻžāϰ āĻāĻžāĻ āĻā§āϞ⧠āĻļā§āώ āĻāϰā§āĨ¤ āĻāĻĻāĻžāĻšāϰāĻŖ āϏā§āĻŦāϰā§āĻĒ , āĻāĻāĻŋ āϝāĻĨāĻžāĻā§āϰāĻŽā§ data observation āϏā§āĻāĻāĻĒ āĻāϰāϤ⧠āĻšāϝāĻŧ, template āĻā§ compile āĻāϰāϤ⧠āĻšāϝāĻŧ , DOM āĻ instance āĻā§ mount āĻāϰ⧠āĻāĻŦāĻ āϝāĻāύ āĻā§āύ⧠āĻĄāĻžāĻāĻž āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻšāϝāĻŧ, āϤāĻāύ DOM āĻā§ Update āĻāϰā§āĨ¤ āĻāĻāĻāĻāĻžāĻŦā§ āĻāĻāĻŋ āĻĢāĻžāĻā§āĻāĻļāύ āĻā§āϞā§āĻā§ āϰāĻžāύ āĻāϰ⧠, āϝā§āĻāĻžāĻā§ āĻŦāϞāĻž āĻšāϝāĻŧ lifecycle hooks, āϝāĻž user āĻā§ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āϧāĻžāĻĒ āĻā§āϞā§āϤ⧠āϤāĻžāϰ āύāĻŋāĻāϏā§āĻŦ āĻā§āĻĄ āĻā§āϞā§āĻā§ āϝā§āĻā§āϤ āĻāϰāϤ⧠āϏā§āϝā§āĻ āĻĻā§āϝāĻŧāĨ¤
Lifecycle Diagram

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>

āϞāĻā§āώā§āϝ āĻāϰā§āύ , āĻāĻŽā§āĻāĻāĻŋ āĻĒāĻžāĻā§āĻā§āύāĻžāĨ¤
āĻāĻāύ 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 āĻ 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 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
āĻāϰ āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ 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>

āĻāĻŦāĻžāϰ 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

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

āϤāĻŦā§ āĻāĻĒāύāĻŋ āĻāĻžāĻāϞ⧠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 āĻ âāĻāύâ 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>

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

āĻāĻāĻžāĻĄāĻŧāĻž āĻāĻĒāύāĻŋ 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 āĻāϰ āϏāĻžāĻĨā§ 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
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>