Learning Vue.js in Bangla part-3: VueJS Components and Events

VueJS āĻ events āĻ•āĻŋ?

VueJS āĻ events āĻŦā§āĻāĻžāĻ° āĻ†āĻ—ā§‡ , āĻ†āĻŽāĻžāĻĻā§‡āĻ°āĻ•ā§‡ JavaScript āĻāĻ° event āĻ•āĻŋ āĻ¸ā§‡āĻŸāĻŋ āĻŦā§āĻœāĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤ āĻŽā§‚āĻ˛āĻ¤āĻƒ āĻ“āĻ¯āĻŧā§‡āĻŦ āĻĒā§‡āĻœā§‡ (āĻĄāĻ•ā§āĻŽā§‡āĻ¨ā§āĻŸ āĻŦāĻž āĻŦā§āĻ°āĻžāĻ‰āĻœāĻžāĻ°ā§‡) āĻ‡āĻ‰āĻœāĻžāĻ°ā§‡āĻ° āĻŽāĻžāĻ‰āĻ¸ , āĻ•ā§€āĻŦā§‹āĻ°ā§āĻĄ āĻ…āĻĨāĻŦāĻž āĻŸāĻžāĻšāĻĒā§āĻ¯āĻžāĻĄ āĻāĻ° āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻŽā§āĻ­āĻŽā§‡āĻ¨ā§āĻŸ āĻŦāĻž āĻāĻ•ā§āĻŸāĻŋāĻ­āĻŋāĻŸāĻŋ āĻ¯ā§‡āĻŽāĻ¨ onclick, ondbclick, onmouseover,onmouseout, onload, hover. onblur,onchange ,onkeydown āĻ‡āĻ¤ā§āĻ¯āĻžāĻĻāĻŋ āĻāĻ•āĻŸāĻŋāĻ­āĻŋāĻŸāĻŋ āĻ—ā§āĻ˛ā§‹āĻ•ā§‡ JavaScript Events āĻŦāĻ˛ā§‡āĨ¤ āĻ āĻŋāĻ• āĻāĻ•āĻ‡ āĻ°āĻ•āĻŽ events āĻ—ā§āĻ˛ā§‹ āĻ†āĻŽāĻ°āĻž VueJS āĻ āĻĻā§‡āĻ–āĻ¤ā§‡ āĻĒāĻžāĻ‡āĨ¤ VueJS āĻ v-on directive āĻĻāĻŋāĻ¯āĻŧā§‡ DOM events āĻ—ā§āĻ˛ā§‹ āĻ¸āĻŋāĻ˛ā§‡āĻ•ā§āĻŸ āĻ•āĻ°ā§‡ , āĻāĻŦāĻ‚ VueJS āĻāĻ° property, method āĻ—ā§āĻ˛ā§‹ apply āĻ•āĻ°ā§‡āĨ¤

āĻāĻŦāĻžāĻ° āĻšāĻ˛ā§āĻ¨ VueJS event āĻĻāĻŋāĻ¯āĻŧā§‡ āĻāĻ•āĻŸāĻž āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻĻā§‡āĻ–āĻž āĻ¯āĻžāĻ•:

<html>
   <head>
      <title>VueJs Events</title>
       <script type = "text/javascript" src = "https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
   </head>
   <body>
     <div id="example-1">
      <button v-on:click="counter += 1">Add 1</button>
      <p>The button above has been clicked {{ counter }} times.</p>
    </div>
      <script type = "text/javascript">
      var example1 = new Vue({
        el: '#example-1',
        data: {
          counter: 0
        }
      });
      </script>
   </body>
</html>

Result

Counter with VueJS events

āĻāĻ–āĻžāĻ¨ā§‡ āĻ†āĻĒāĻ¨āĻŋ āĻŦāĻžāĻŸāĻ¨āĻŸāĻŋ āĻ¯āĻ¤āĻŦāĻžāĻ° āĻ•ā§āĻ˛āĻŋāĻ• āĻ•āĻ°āĻŦā§‡āĻ¨ , āĻ¤āĻ¤āĻŦāĻžāĻ° āĻāĻ• āĻāĻ• āĻ•āĻ°ā§‡ āĻ¨āĻŽā§āĻŦāĻ° āĻŸāĻŋ āĻŦāĻžāĻĄāĻŧāĻ¤ā§‡ āĻĨāĻžāĻ•āĻŦā§‡āĨ¤

āĻ¤āĻŦā§‡ āĻ†āĻĒāĻ¨āĻŋ āĻšāĻžāĻ‡āĻ˛ā§‡ v-on:click āĻāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§‡ @click āĻ“ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨āĨ¤

<html>
   <head>
      <title>VueJs Events</title>
       <script type = "text/javascript" src = "https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
   </head>
   <body>
     <div id="example-1">
      <button @click="counter += 1">Add 1</button>
      <p>The button above has been clicked {{ counter }} times.</p>
    </div>
      <script type = "text/javascript">
      var example1 = new Vue({
        el: '#example-1',
        data: {
          counter: 0
        }
      });
      </script>
   </body>
</html>

āĻāĻŦāĻžāĻ° āĻšāĻ˛ā§āĻ¨ mouseover āĻāĻŦāĻ‚ mouseout event āĻĻāĻŋāĻ¯āĻŧā§‡ āĻāĻ•āĻŸāĻž āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻĻā§‡āĻ–āĻŋāĨ¤

<html>
   <head>
      <title>VueJs Events</title>
     <script type = "text/javascript" src = "https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
   </head>
   <body>
      <div id = "databinding">
         <div v-bind:style = "boxstyle" @mouseover = "changebgcolor" v-on:mouseout = "originalcolor"></div>
      </div>
      <script type = "text/javascript">
         var vm = new Vue({
            el: '#databinding',
            data: {
               boxstyle : {
                  width:"100px",
                  height:"100px",
                  backgroundColor:"red"
               }
            },
            methods : {
               changebgcolor : function() {
                  this.boxstyle.backgroundColor = "green";
               },
               originalcolor : function() {
                  this.boxstyle.backgroundColor = "red";
               }
            },
         });
      </script>
   </body>
</html>

āĻāĻŦāĻžāĻ° āĻ†āĻĒāĻ¨āĻŋ āĻ†āĻĒāĻ¨āĻžāĻ° āĻŽāĻžāĻ‰āĻ¸ āĻĒāĻ¯āĻŧā§‡āĻ¨ā§āĻŸāĻžāĻ°āĻ•ā§‡ āĻ˛āĻžāĻ˛ āĻ°āĻ™ā§‡āĻ° āĻŦāĻ•ā§āĻ¸ā§‡āĻ° āĻ‰āĻĒāĻ° āĻ¨āĻŋāĻ˛ā§‡āĻ‡ āĻ¨āĻŋāĻšā§‡āĻ° āĻŽāĻ¤ā§‹ āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻĻā§‡āĻ–āĻ¤ā§‡ āĻĒāĻžāĻ°āĻŦā§‡āĻ¨āĨ¤

VueJS mouseout event
VueJS OnMouse Over

āĻāĻŦāĻžāĻ° āĻšāĻ˛ā§āĻ¨ onkeyup event āĻĻāĻŋāĻ¯āĻŧā§‡ āĻāĻ•āĻŸāĻž āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻĻā§‡āĻ–āĻŋāĨ¤

<html>
   <head>
      <title>VueJs .key Modifier</title>
     <script type = "text/javascript" src = "https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
   </head>
   <body>
       <div id = "databinding">
         <input type = "text" v-on:keyup = "showinputvalue" v-bind:style = "styleobj" placeholder = "Enter your name"/>
         <h3> {{name}}</h3>
      </div>
      <script type = "text/javascript">
         var vm = new Vue({
            el: '#databinding',
            data: {
               name:'',
               styleobj: {
                  width: "30%",
                  padding: "12px 20px",
                  margin: "8px 0",
                  boxSizing: "border-box"
               }
            },
            methods : {
               showinputvalue : function(event) {
                  this.name=event.target.value;
               }
            }
         });
      </script>
   </body>
</html>

Output

VueJS onkeyup event

VueJS .once Event Modifiers

VueJS āĻ v-on attribute āĻ .once āĻ¨āĻžāĻŽā§‡ āĻāĻ•āĻŸāĻŋ modifiers āĻ†āĻ›ā§‡ , āĻ¯āĻž āĻĻāĻŋāĻ¯āĻŧā§‡ āĻ†āĻĒāĻ¨āĻŋ āĻ¯ā§‡āĻ•ā§‹āĻ¨ā§‹ event āĻ•ā§‡ āĻļā§āĻ§ā§ āĻŽāĻžāĻ¤ā§āĻ° āĻāĻ•āĻŦāĻžāĻ° execute āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°āĻŦā§‡āĻ¨āĨ¤ āĻ¨āĻŋāĻšā§‡āĻ° āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻŸāĻŋ āĻĻā§‡āĻ–ā§āĻ¨ :

<html>
   <head>
      <title>VueJs Event Modifieres</title>
       <script type = "text/javascript" src = "https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
   </head>
   <body>
      <div id = "databinding">
         <button v-on:click.once = "buttonclickedonce" v-bind:style = "styleobj">Click Once</button>
         Output:{{clicknum}}
         <br/><br/>
         <button v-on:click = "buttonclicked"  v-bind:style = "styleobj">Click Me</button>
         Output:{{clicknum1}}
      </div>
      <script type = "text/javascript">
         var vm = new Vue({
            el: '#databinding',
            data: {
               clicknum : 0,
               clicknum1 :0,
               styleobj: {
                  backgroundColor: '#2196F3!important',
                  cursor: 'pointer',
                  padding: '8px 16px',
                  verticalAlign: 'middle',
               }
            },
            methods : {
               buttonclickedonce : function() {
                  this.clicknum++;
               },
               buttonclicked : function() {
                  this.clicknum1++;
               }
            }
         });
      </script>
   </body>
</html>

Output

vueJS once modifier

āĻ˛āĻ•ā§āĻˇā§āĻ¯ āĻ•āĻ°āĻŦā§‡āĻ¨ click once āĻŦāĻžāĻŸāĻ¨ā§‡āĻ° āĻļā§āĻ§ā§ āĻāĻ•āĻŦāĻžāĻ° value āĻŦā§ƒāĻĻā§āĻ§āĻŋ āĻĒāĻžāĻšā§āĻ›ā§‡, āĻ†āĻ° āĻ…āĻ¨ā§āĻ¯ āĻŦāĻžāĻŸāĻ¨āĻŸāĻŋ āĻĒā§āĻ°āĻ¤āĻŋāĻŦāĻžāĻ°āĻ‡ ā§§ āĻ•āĻ°ā§‡ āĻŦā§ƒāĻĻā§āĻ§āĻŋ āĻĒāĻžāĻšā§āĻ›ā§‡āĨ¤

VueJS .prevent Event Modifiers

.prevent Event Modifier āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ , āĻ†āĻĒāĻ¨āĻŋ āĻ¯ā§‡āĻ•ā§‹āĻ¨ā§‹ āĻ‡āĻ­ā§‡āĻ¨ā§āĻŸ āĻ•ā§‡ prevent āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°āĻŦā§‡āĻ¨āĨ¤ āĻ¤āĻžāĻšāĻ˛ā§‡ āĻšāĻ˛ā§āĻ¨ āĻĒā§āĻ°āĻĨāĻŽā§‡ .prevent event modifier āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ¨āĻž āĻ•āĻ°ā§‡ āĻāĻ•āĻŸāĻž āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻĻā§‡āĻ–āĻž āĻ¯āĻžāĻ•:

<html>
   <head>
      <title>VueJs .prevent Modifier</title>
      <script type = "text/javascript" src = "js/vue.js"></script>
   </head>
   <body>
      <div id = "databinding">
         <a href = "http://www.google.com" v-on:click = "clickme" target = "_blank" v-bind:style = "styleobj">Click Me</a>
      </div>
      <script type = "text/javascript">
         var vm = new Vue({
            el: '#databinding',
            data: {
               clicknum : 0,
               clicknum1 :0,
               styleobj: {
                  color: '#4CAF50',
                  marginLeft: '20px',
                  fontSize: '30px'
               }
            },
            methods : {
               clickme : function() {
                  alert("Anchor tag is clicked");
               }
            }
         });
      </script>
   </body>
</html>

Output

VueJS Prevent Modifier

āĻāĻ–āĻ¨ āĻ†āĻŽāĻ°āĻž āĻ¯āĻĻāĻŋ clickme āĻ˛āĻŋāĻ‚āĻ•ā§‡ āĻ•ā§āĻ˛āĻŋāĻ• āĻ•āĻ°āĻŋ , āĻ¤āĻžāĻšāĻ˛ā§‡ āĻāĻŸāĻŋ āĻ†āĻŽāĻžāĻĻā§‡āĻ°āĻ•ā§‡ “Anchor tag is clicked” āĻāĻ•āĻŸāĻž alert āĻĻāĻŋāĻŦā§‡ āĻāĻŦāĻ‚ āĻ¨āĻ¤ā§āĻ¨ tab āĻ https://www.google.com site āĻ āĻ¯āĻžāĻŦā§‡āĨ¤ āĻ¨āĻŋāĻšā§‡āĻ° screenshots āĻŸāĻŋ āĻĻā§‡āĻ–ā§āĻ¨āĨ¤

VueJS Tag Clicked
VueJS Tag Clicked
VueJS Tag Opened

āĻāĻ–āĻ¨ āĻāĻŸāĻŋ āĻāĻ•āĻŸāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ‰āĻĒāĻžāĻ¯āĻŧ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡, āĻ…āĻ°ā§āĻĨāĻžāĻ¤ā§ āĻ˛āĻŋāĻ™ā§āĻ•āĻŸāĻŋ āĻ†āĻŽāĻ°āĻž āĻ¯ā§‡āĻ­āĻžāĻŦā§‡ āĻšāĻžāĻ‡āĻŦā§‹ āĻ¸ā§‡āĻ­āĻžāĻŦā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ–ā§āĻ˛ā§‡ āĨ¤ āĻ†āĻŽāĻ°āĻž āĻ˛āĻŋāĻ™ā§āĻ•āĻŸāĻŋ āĻ¨āĻž āĻ“āĻĒā§‡āĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻžāĻ‡āĻ˛ā§‡, āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻ–āĻŋāĻ¤ āĻ•ā§‹āĻĄā§‡āĻ° āĻŽāĻ¤ā§‹ āĻ†āĻŽāĻžāĻĻā§‡āĻ° ‘prevent modifier āĻ¯ā§āĻ•ā§āĻ¤ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤

<a href = "http://www.google.com" v-on:click.prevent = "clickme" target = "_blank" v-bind:style = "styleobj">Click Me</a>

āĻāĻ–āĻ¨ āĻ¯āĻĻāĻŋ āĻ†āĻŽāĻ°āĻž āĻŦāĻžāĻŸāĻ¨ā§‡ āĻ•ā§āĻ˛āĻŋāĻ• āĻ•āĻ°āĻŋ , āĻāĻŸāĻŋ āĻ†āĻŽāĻžāĻĻā§‡āĻ°āĻ•ā§‡ āĻāĻ•āĻŸāĻž āĻāĻ˛āĻžāĻ°ā§āĻŸ āĻŽā§‡āĻ¸ā§‡āĻœ āĻĻāĻŋāĻŦā§‡, āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻ˛āĻŋāĻ‚āĻ•āĻŸāĻŋ āĻ“āĻĒā§‡āĻ¨ āĻšāĻŦā§‡āĻ¨āĻžāĨ¤ āĻ•āĻžāĻ°āĻŖ .prevent modifier āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ˛āĻŋāĻ‚āĻ•āĻŸāĻŋ āĻ“āĻĒā§‡āĻ¨ āĻ•āĻ°āĻž prevent āĻ•āĻ°āĻŦā§‡āĨ¤

āĻ¤āĻžāĻšāĻ˛ā§‡ āĻšāĻ˛ā§āĻ¨ āĻ¸āĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻ•ā§‹āĻĄāĻŸāĻŋ āĻĻā§‡āĻ–āĻž āĻ¯āĻžāĻ•:

<html>
   <head>
      <title>VueJs .prevent Modifier</title>
      <script type = "text/javascript" src = "js/vue.js"></script>
   </head>
   <body>
      <div id = "databinding">
         <a href = "http://www.google.com" v-on:click.prevent = "clickme" target = "_blank" v-bind:style = "styleobj">Click Me</a>
      </div>
      <script type = "text/javascript">
         var vm = new Vue({
            el: '#databinding',
            data: {
               clicknum : 0,
               clicknum1 :0,
               styleobj: {
                  color: '#4CAF50',
                  marginLeft: '20px',
                  fontSize: '30px'
               }
            },
            methods : {
               clickme : function() {
                  alert("Anchor tag is clicked");
               }
            }
         });
      </script>
   </body>
</html>

Output

Alert with Prevent Modifier

āĻāĻ–āĻ¨ āĻ†āĻĒāĻ¨āĻŋ āĻļā§āĻ§ā§ alert āĻŸāĻŋ āĻĻā§‡āĻ–āĻ¤ā§‡ āĻĒāĻžāĻŦā§‡āĻ¨ , āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻĒā§‡āĻœ āĻ°āĻŋāĻĄāĻžāĻ‡āĻ°ā§‡āĻ•ā§āĻŸ āĻšāĻŦā§‡āĻ¨āĻžāĨ¤

VueJS Key Event Modifiers

VueJS āĻ key modifier āĻĻāĻŋāĻ¯āĻŧā§‡ āĻ†āĻŽāĻ°āĻž event handling āĻ•ā§‡ control āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°āĻŋāĨ¤ āĻ§āĻ°ā§āĻ¨ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻāĻ•āĻŸāĻž textbox āĻ†āĻ›ā§‡ , āĻāĻŦāĻ‚ āĻ†āĻŽāĻ°āĻž āĻ¯āĻĻāĻŋ āĻ¸ā§‡āĻ‡ textbox āĻ āĻ•ā§‹āĻ¨ā§‹ āĻ•āĻŋāĻ›ā§ āĻ˛āĻŋāĻ–ā§‡ āĻāĻ¨ā§āĻŸāĻžāĻ° āĻĻā§‡āĻ‡ , āĻ¤āĻžāĻšāĻ˛ā§‡ āĻāĻ•āĻŸāĻž āĻŽā§‡āĻĨāĻĄ āĻ•āĻ˛ āĻšāĻŦā§‡āĨ¤ āĻ†āĻ° āĻāĻ‡ āĻ§āĻ°āĻŖā§‡āĻ° āĻ•āĻžāĻœā§‡āĻ° āĻœāĻ¨ā§āĻ¯ā§‡ VueJS āĻ key modifier āĻ—ā§āĻ˛ā§‹āĻ•ā§‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°āĻŋāĨ¤

VueJS āĻ key modifier āĻāĻ° syntax āĻ āĻŋāĻ• āĻ¨āĻŋāĻšā§‡āĻ° āĻŽāĻ¤ā§‹ āĻšāĻŦā§‡āĨ¤

1 v-on.eventname.keyname

āĻ¤āĻŦā§‡ āĻ†āĻĒāĻ¨āĻŋ āĻšāĻžāĻ‡āĻ˛ā§‡ āĻāĻ•āĻžāĻ§āĻŋāĻ• key āĻ¯ā§āĻ•ā§āĻ¤ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨āĨ¤

1 v-on.eventname.keyname.anotherkeyname

āĻ†āĻ°ā§‹ āĻ­āĻžāĻ˛ā§‹ āĻ­āĻžāĻŦā§‡ āĻŦā§āĻāĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¨āĻŋāĻšā§‡āĻ° āĻ•ā§‹āĻĄāĻŸāĻŋ āĻĻā§‡āĻ–ā§āĻ¨ :

1 <input type = "text"  v-on:keyup.enter = "showinputvalue"/>

āĻāĻ•āĻžāĻ§āĻŋāĻ• key āĻ¯ā§āĻ•ā§āĻ¤ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ :

1 <input type = "text"  v-on:keyup.ctrl.enter = "showinputvalue"/>

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

<html>
   <head>
      <title>VueJs .key Modifier</title>
     <script type = "text/javascript" src = "https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
   </head>
   <body>
       <div id = "databinding">
         <input type = "text" v-on:keyup.enter = "showinputvalue" v-bind:style = "styleobj" placeholder = "Enter your name"/>
         <h3> {{name}}</h3>
      </div>
      <script type = "text/javascript">
         var vm = new Vue({
            el: '#databinding',
            data: {
               name:'',
               styleobj: {
                  width: "30%",
                  padding: "12px 20px",
                  margin: "8px 0",
                  boxSizing: "border-box"
               }
            },
            methods : {
               showinputvalue : function(event) {
                  this.name=event.target.value;
               }
            }
         });
      </script>
   </body>
</html>

Output

VueJS key Event

VueJS āĻ Form Input Bindings

VueJS āĻ form āĻāĻ° input, textarea, and select element āĻ—ā§āĻ˛ā§‹āĻ¤ā§‡ two-way data bindings āĻāĻ° āĻœāĻ¨ā§āĻ¯ā§‡ āĻ†āĻŽāĻ°āĻž v-model directive āĻŸāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°āĻŋāĨ¤ āĻšāĻ˛ā§āĻ¨ āĻĒā§āĻ°āĻ¤ā§āĻ¯ā§‡āĻ•āĻŸāĻŋ form input āĻāĻ° āĻ†āĻ˛āĻžāĻĻāĻž āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻĻāĻŋāĻ¯āĻŧā§‡ āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŸāĻž āĻŦā§āĻā§‡ āĻ¨ā§‡āĻ¯āĻŧāĻž āĻ¯āĻžāĻ•:

Text Input Example

<html>
   <head>
      <title>Form Input Bindings</title>
     <script type = "text/javascript" src = "https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
   </head>
   <body>
      <div id="example-1">
     <input v-model="message" placeholder="edit me">
<p>Message is: {{ message }}</p>
 
 <script>
new Vue({
  el: '#example-1',
  data: {
    message: ''
  }
})
</script>
   </body>
</html>

Output

VueJS Form Input Data Bindings

textarea Input Example

<html>
   <head>
      <title>Form Input Bindings</title>
     <script type = "text/javascript" src = "https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
   </head>
   <body>
      <div id="example-1">
    <span>Multiline message is:</span>
<p style="white-space: pre-line;">{{ message }}</p>
<br>
<textarea v-model="message" placeholder="add multiple lines"></textarea>
</div>
 <script>
new Vue({
  el: '#example-1',
  data: {
    message: ''
  }
})
</script>
   </body>
</html>

Output

VueJS textarea form input data binding

checkbox Input Example

<html>
   <head>
      <title>VueJs Form Input Bindings</title>
     <script type = "text/javascript" src = "https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
   </head>
   <body>
      <div id="example-1">
         <input type="checkbox" id="checkbox" v-model="checked">
         <label for="checkbox">{{ checked }}</label>
      </div>
      <script>
         new Vue({
            el: '#example-1',
            data: {
               checked: false
               }
            })
      </script>
   </body>
</html>

Output

VueJS Checkbox Form input bindings

Multiple checkboxes Form input binding example

<html>
   <head>
      <title>VueJs Form Input Bindings</title>
     <script type = "text/javascript" src = "https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
   </head>
   <body>
      <div id='example-1'>
         <input type="checkbox" id="jack" value="Jack" v-model="checkedNames">
         <label for="jack">Jack</label>
         <input type="checkbox" id="john" value="John" v-model="checkedNames">
         <label for="john">John</label>
         <input type="checkbox" id="mike" value="Mike" v-model="checkedNames">
         <label for="mike">Mike</label>
         <br>
         <span>Checked names: {{ checkedNames }}</span>
</div>
      <script>
         new Vue({
            el: '#example-1',
            data: {
               checkedNames: []
               }
            })
      </script>
   </body>
</html>

Output

VueJS Multiple Checkbox Form input bindings

Multiple Radio Button Form input binding example

<html>
   <head>
      <title>VueJs Form Input Bindings</title>
     <script type = "text/javascript" src = "https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
   </head>
   <body>
      <div id='example-1'>
         <input type="radio" id="one" value="One" v-model="picked">
         <label for="one">One</label>
         <br>
         <input type="radio" id="two" value="Two" v-model="picked">
         <label for="two">Two</label>
         <br>
         <span>Picked: {{ picked }}</span>
</div>
      <script>
         new Vue({
            el: '#example-1',
           data: {
            picked: ''
            }
            })
      </script>
   </body>
</html>

Output

VueJS Radio Button Form input bindings

Select Box Form input binding example

<html>
   <head>
      <title>VueJs Form Input Bindings</title>
     <script type = "text/javascript" src = "https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
   </head>
   <body>
      <div id='example-1'>
        <select v-model="selected">
         <option disabled value="">Please select one</option>
         <option>A</option>
         <option>B</option>
         <option>C</option>
      </select>
<span>Selected: {{ selected }}</span>
</div>
      <script>
         new Vue({
            el: '#example-1',
           data: {
            selected: ''
            }
            })
      </script>
   </body>
</html>

Output

VueJS Select Form Input Data Bindings

Multiple Select Box Form input binding example

<html>
   <head>
      <title>VueJs Form Input Bindings</title>
     <script type = "text/javascript" src = "https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
   </head>
   <body>
      <div id='example-1'>
       <select v-model="selected" multiple>
         <option>A</option>
         <option>B</option>
         <option>C</option>
      </select>
<br>
<span>Selected: {{ selected }}</span>
</div>
      <script>
         new Vue({
            el: '#example-1',
           data: {
            selected: ''
            }
            })
      </script>
   </body>
</html>

Output

VueJS Multiple Select Input Data Bindings

VueJS āĻ Components āĻ•āĻŋ?

Components āĻšāĻšā§āĻ›ā§‡ VueJS āĻāĻ° āĻ…āĻ¨ā§āĻ¯āĻ¤āĻŽ āĻ—ā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖ āĻāĻ•āĻŸāĻž features āĻ¯āĻž āĻĻāĻŋāĻ¯āĻŧā§‡ āĻ†āĻŽāĻ°āĻž custom element āĻ—ā§āĻ˛ā§‹ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°āĻŋ āĻāĻŦāĻ‚ āĻ¸ā§‡āĻŸāĻŋ HTML āĻ (reused) āĻŦāĻžāĻ°āĻŦāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°āĻŋāĨ¤

vueJS āĻ Component āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻ˛ā§‡ Vue.component('nameofthecomponent',{ // options}); āĻāĻ‡ syntax āĻĻāĻŋāĻ¯āĻŧā§‡ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻ¯āĻŧāĨ¤ āĻ†āĻ° āĻ¯āĻ–āĻ¨ āĻāĻ•āĻŸāĻŋ component āĻ¤ā§ˆāĻ°āĻŋ āĻšāĻ¯āĻŧ , āĻ¤āĻ–āĻ¨ component āĻ¨āĻžāĻŽ āĻŸāĻŋ āĻāĻ•āĻŸāĻŋ Custom HTML Element āĻšāĻ¯āĻŧā§‡ āĻ¯āĻžāĻ¯āĻŧ , āĻ†āĻ° āĻ¸ā§‡āĻ‡ Custom HTML Element āĻ†āĻŽāĻ°āĻž āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§€āĻ¤ā§‡ HTML āĻ (reused) āĻŦāĻžāĻ°āĻŦāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°āĻŋāĨ¤

āĻ¤āĻžāĻšāĻ˛ā§‡ āĻšāĻ˛ā§āĻ¨ āĻ†āĻŽāĻ°āĻž component āĻĻāĻŋāĻ¯āĻŧā§‡ āĻāĻ•āĻŸāĻž sample code āĻ•āĻ°āĻŋ , āĻāĻ¤ā§‡ āĻ†āĻŽāĻ°āĻž VueJS āĻāĻ° components āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻ†āĻ°ā§‹ āĻŦāĻŋāĻ¸ā§āĻ¤āĻžāĻ°āĻŋāĻ¤ āĻœāĻžāĻ¨āĻ¤ā§‡ āĻĒāĻžāĻ°āĻŦāĨ¤

<html>
   <head>
      <title>VueJs Components</title>
       <script type = "text/javascript" src = "https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
   </head>
   <body>
       <div id = "component_test">
         <testcomponent></testcomponent>
      </div>
      <div id = "component_test1">
         <testcomponent></testcomponent>
      </div>
      <script type = "text/javascript">
        Vue.component('testcomponent',{
         template : '<div><h1>This is coming from component</h1></div>'
         });
        var vm = new Vue({
         el: '#component_test'
      });
        var vm1 = new Vue({
         el: '#component_test1'
      });
      </script>
   </body>
</html>

āĻāĻ–āĻžāĻ¨ā§‡ āĻĒā§āĻ°āĻĨāĻŽā§‡ āĻ†āĻŽāĻ°āĻž component_test āĻāĻŦāĻ‚ component_test1 āĻ†āĻ‡āĻĄāĻŋ āĻ¸āĻš āĻĻā§āĻŸāĻŋ div āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§‡āĻ›āĻŋ , āĻ¤āĻžāĻ°āĻĒāĻ° āĻ†āĻŽāĻ°āĻž āĻ¨āĻŋāĻšā§‡ JavaScript āĻ…āĻ‚āĻļā§‡ Vue Class āĻāĻ° component Method āĻĻāĻŋāĻ¯āĻŧā§‡ testcomponent āĻ¨āĻžāĻŽā§‡ āĻāĻ•āĻŸāĻž custom HTML āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻŋāĨ¤ āĻ¤āĻžāĻ°āĻĒāĻ° āĻ†āĻŽāĻ°āĻž āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ¤ā§ˆāĻ°ā§€ āĻ¨āĻ¤ā§āĻ¨ custom html element āĻŸāĻŋ āĻĻā§āĻŸāĻŋ div āĻ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻĻā§āĻŸāĻŋ vue instance āĻ¤ā§ˆāĻ°ā§€ āĻ•āĻ°āĻŋāĨ¤ āĻāĻ–āĻ¨ āĻāĻŸāĻŋ āĻ°āĻžāĻ¨ āĻ•āĻ°āĻ˛ā§‡ , āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻ āĻŋāĻ• āĻ¨āĻŋāĻšā§‡āĻ° āĻŽāĻ¤ā§‹ āĻ†āĻ¸āĻŦā§‡āĨ¤

Vue Components

āĻāĻŦāĻžāĻ° āĻšāĻ˛ā§āĻ¨ Vue Component āĻāĻ° āĻ†āĻ°ā§‡āĻ•āĻŸāĻŋ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻĻā§‡āĻ–āĻž āĻ¯āĻžāĻ•:

<html>
   <head>
      <title>VueJs .key Modifier</title>
     <script type = "text/javascript" src = "https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
   </head>
   <body>
      <div id="components-demo">
         <button-counter></button-counter>
         <button-counter></button-counter>
      </div>
      <script type = "text/javascript">
         // Define a new component called button-counter
         Vue.component('button-counter', {
            data: function () {
               return {
                  count: 0
               }
            },
         template: '<button v-on:click="count++">You clicked me {{ count }} times.</button>'
})
        new Vue({ el: '#components-demo' })
      </script>
   </body>
</html>

Output

VueJS Component With function

VueJS āĻāĻ° component data āĻ…āĻŦāĻ¸ā§āĻ¯āĻ‡ āĻāĻ•āĻŸāĻž āĻĢāĻžāĻ™ā§āĻ•āĻļāĻ¨ āĻšāĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤ āĻāĻŸāĻžāĻ•ā§‡ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ object āĻšāĻŋāĻ¸ā§‡āĻŦā§‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻ¯āĻžāĻŦā§‡āĻ¨āĻžāĨ¤ āĻ…āĻ°ā§āĻĨāĻžā§Ž āĻ¨āĻŋāĻšā§‡āĻ° āĻ•ā§‹āĻĄā§‡āĻ° āĻŽāĻ¤ā§‹ āĻĻā§‡āĻ“āĻ¯āĻŧāĻž āĻ¯āĻžāĻŦā§‡āĻ¨āĻžāĨ¤

VueJS āĻāĻ° component data āĻ…āĻŦāĻ¸ā§āĻ¯āĻ‡ āĻāĻ•āĻŸāĻž āĻĢāĻžāĻ™ā§āĻ•āĻļāĻ¨ āĻšāĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤ āĻāĻŸāĻžāĻ•ā§‡ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ object āĻšāĻŋāĻ¸ā§‡āĻŦā§‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻ¯āĻžāĻŦā§‡āĻ¨āĻžāĨ¤ āĻ…āĻ°ā§āĻĨāĻžā§Ž āĻ¨āĻŋāĻšā§‡āĻ° āĻ•ā§‹āĻĄā§‡āĻ° āĻŽāĻ¤ā§‹ āĻĻā§‡āĻ“āĻ¯āĻŧāĻž āĻ¯āĻžāĻŦā§‡āĻ¨āĻžāĨ¤

123 data: {count: 0}

āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻ āĻŋāĻ• āĻ¨āĻŋāĻšā§‡āĻ° āĻŽāĻ¤ā§‹ āĻ•āĻ°ā§‡ āĻ˛āĻŋāĻ–āĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤

12345 data: function () {return {count: 0}}

VueJS Components Organization

VueJS āĻ Components āĻ—ā§āĻ˛ā§‹ Nested Tree āĻ†āĻ•āĻžāĻ°ā§‡ āĻĨāĻžāĻ•ā§‡āĨ¤ āĻ§āĻ°ā§āĻ¨ āĻ†āĻĒāĻ¨āĻžāĻ° āĻāĻ•āĻŸāĻž āĻ“āĻ¯āĻŧā§‡āĻŦāĻ¸āĻžāĻ‡āĻŸ , āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻ†āĻĒāĻ¨āĻžāĻ° header, sidebar āĻāĻŦāĻ‚ content_area āĻāĻ° āĻŽāĻ¤ā§‹ āĻ•āĻŋāĻ›ā§ component āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ āĻāĻŦāĻ‚ āĻāĻ‡āĻ¸āĻŦ component āĻāĻ° āĻ…āĻ§ā§€āĻ¨ā§‡ āĻ†āĻ›ā§‡ āĻ†āĻŦāĻžāĻ° āĻ¯āĻĨāĻžāĻ•ā§āĻ°āĻŽā§‡ navigations, links, blog posts āĻāĻ‡ āĻ¸āĻŦ components . āĻ†āĻ°ā§‹ āĻ­āĻžāĻ˛ā§‹ āĻ­āĻžāĻŦā§‡ āĻŦā§āĻāĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¨āĻŋāĻšā§‡āĻ° āĻĢā§āĻ˛ā§‹āĻšāĻžāĻ°ā§āĻŸ āĻŸāĻŋ āĻĻā§‡āĻ–ā§āĻ¨ :

VueJS components Organization

VueJS āĻ slots āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ content distribution

VueJS āĻ slots āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ content distribution āĻŸāĻž āĻ…āĻ¨ā§‡āĻ•āĻŸāĻž HTML Elements āĻāĻ° āĻŽāĻ¤ā§‹, āĻāĻŸāĻž āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤āĻƒ content āĻ•ā§‡ component āĻ āĻĒāĻžāĻ¸ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ–ā§āĻŦāĻ‡ āĻĻāĻ°āĻ•āĻžāĻ°āĻŋāĨ¤ āĻ¨āĻŋāĻšā§‡āĻ° āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻŸāĻŋ āĻĻā§‡āĻ–ā§āĻ¨:

<html>
   <head>
      <title>VueJS content distribution</title>
     <script type = "text/javascript" src = "https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <style>
.demo-alert-box {
  padding: 10px 20px;
  background: #f3beb8;
  border: 1px solid #f09898;
}
</style>
   </head>
   <body>
      <div id="slots-demo">
         <alert-box>
            Something bad happened.
         </alert-box>
      </div>
 
      <script>
         Vue.component('alert-box', {
            template: `<div class="demo-alert-box">
                        <strong>Error!</strong>
                        <slot></slot>
                        </div>`
                     })
 
     new Vue({ el: '#slots-demo' })
      </script>
   </body>
</html>

Output

VueJS Component Slots

VueJS āĻ āĻāĻ• component āĻĨā§‡āĻ•ā§‡ āĻ…āĻ¨ā§āĻ¯ components āĻ switch

<html>
   <head>
      <title>VueJS content distribution</title>
     <script type = "text/javascript" src = "https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
       <style>
.tab-button {
  padding: 6px 10px;
  border-top-left-radius: 3px;
  border-top-right-radius: 3px;
  border: 1px solid #ccc;
  cursor: pointer;
  background: #f0f0f0;
  margin-bottom: -1px;
  margin-right: -1px;
}
.tab-button:hover {
  background: #e0e0e0;
}
.tab-button.active {
  background: #e0e0e0;
}
.tab {
  border: 1px solid #ccc;
  padding: 10px;
}
</style>
   </head>
   <body>
<div id="dynamic-component-demo" class="demo">
  <button
    v-for="tab in tabs"
    v-bind:key="tab"
    v-bind:class="['tab-button', { active: currentTab === tab }]"
    v-on:click="currentTab = tab"
  >{{ tab }}</button>
 
  <component
    v-bind:is="currentTabComponent"
    class="tab"
  ></component>
</div>
 
     <script>
Vue.component('tab-home', { 
   template: '<div>Home component</div>'
})
Vue.component('tab-posts', { 
   template: '<div>Posts component</div>'
})
Vue.component('tab-archive', { 
   template: '<div>Archive component</div>'
})
 
new Vue({
  el: '#dynamic-component-demo',
  data: {
    currentTab: 'Home',
    tabs: ['Home', 'Posts', 'Archive']
  },
  computed: {
    currentTabComponent: function () {
      return 'tab-' + this.currentTab.toLowerCase()
    }
  }
})
</script>
   </body>
</html>

Output

VueJS āĻ props āĻ•āĻŋ?

VueJS āĻ props āĻšāĻšā§āĻ›ā§‡ properties āĻļāĻŦā§āĻĻā§‡āĻ° āĻ¸āĻ•ā§āĻˇāĻŋāĻĒā§āĻ¤ āĻ°ā§‚āĻĒāĨ¤ VueJS āĻ props āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻ¯ā§‡āĻ•ā§‹āĻ¨ā§‹ parent component āĻĨā§‡āĻ•ā§‡ āĻ¤āĻžāĻ° child component āĻ—ā§āĻ˛ā§‹āĻ¤ā§‡ data pass āĻ•āĻ°āĻžāĻ° āĻāĻ•āĻŸāĻž āĻŽāĻžāĻ§ā§āĻ¯āĻŽāĨ¤ āĻĒā§āĻ°āĻĨāĻŽā§‡ āĻšāĻ˛ā§āĻ¨ VueJS āĻ Component āĻāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ•āĻŋāĻ­āĻžāĻŦā§‡ prop āĻĄāĻŋāĻĢāĻžāĻ‡āĻ¨ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ āĻ¤āĻž āĻĻā§‡āĻ–āĻž āĻ¯āĻžāĻ•:

<html>
   <head>
      <title>VueJs Props</title>
     <script type = "text/javascript" src = "https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
   </head>
   <body>
      <div id="students">
         <full-name name="Masud"></full-name>
   </div>
<br>
 
</div>
      <script>
     Vue.component('full-name', {
      props: ['name'],
      template: '<p>Hi {{ name}}!</p>'
   })
       new Vue({ 
         el: '#students'
    
      })
      </script>
   </body>
</html>

Output

Hi Masud

VueJS āĻ Props āĻāĻ° āĻ…āĻ¨ā§‡āĻ• custom attributes āĻĨāĻžāĻ•ā§‡, āĻ¯ā§‡āĻ—ā§āĻ˛ā§‹āĻ•ā§‡ āĻ†āĻĒāĻ¨āĻŋ component register āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨āĨ¤ āĻ¯āĻ–āĻ¨ āĻ•ā§‹āĻ¨ā§‹ value āĻ•ā§‹āĻ¨ā§‹ āĻāĻ•āĻŸāĻž attribute āĻ pass āĻšāĻ¯āĻŧ, āĻ¤āĻ–āĻ¨ āĻāĻŸāĻŋ āĻ¸ā§‡āĻ‡ component object āĻāĻ° āĻāĻ•āĻŸāĻž property āĻšāĻ¯āĻŧā§‡ āĻ¯āĻžāĻ¯āĻŧāĨ¤ āĻ§āĻ°ā§āĻ¨ āĻ†āĻŽāĻ°āĻž blog posts component āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻŦāĨ¤ āĻāĻ–āĻ¨ āĻ¯āĻĻāĻŋ āĻ†āĻŽāĻ°āĻž āĻ†āĻŽāĻžāĻĻā§‡āĻ° blog post component āĻāĻ° āĻœāĻ¨ā§āĻ¯ āĻ•ā§‹āĻ¨ā§‹ title āĻ•ā§‡ pass āĻ•āĻ°āĻ¤ā§‡ āĻšāĻžāĻ‡ , āĻ¤āĻžāĻšāĻ˛ā§‡ āĻ†āĻŽāĻ°āĻž āĻāĻ‡ title āĻ•ā§‡ props āĻ˛āĻŋāĻ¸ā§āĻŸā§‡ include āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°āĻŋ āĻ¨āĻŋāĻŽā§āĻ¨ā§‹āĻ•ā§āĻ¤ props āĻ…āĻĒāĻļāĻ¨āĻ¸ āĻ—ā§āĻ˛ā§‹āĻ° āĻŽāĻžāĻ§āĻŽā§‡ :

Vue.component('blog-post', {
  props: ['title'],
  template: '<h3>{{ title }}</h3>'
})

āĻāĻ•āĻŸāĻž component āĻ āĻ†āĻĒāĻ¨āĻŋ āĻ¯āĻ¤ āĻŦā§‡āĻļāĻŋ āĻ‡āĻšā§āĻ›āĻž āĻ†āĻĒāĻ¨āĻžāĻ° āĻšāĻžāĻšāĻŋāĻĻāĻž āĻ…āĻ¨ā§āĻ¯āĻžāĻ¯āĻŧā§€ props āĻ¨āĻŋāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨āĨ¤ āĻ¯ā§‡āĻ•ā§‹āĻ¨ā§‹ value āĻ•ā§‡ āĻ†āĻĒāĻ¨āĻŋ āĻšāĻžāĻ‡āĻ˛ā§‡ āĻ¯ā§‡āĻ•ā§‹āĻ¨ā§‹ props āĻ pass āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨āĨ¤ āĻ‰āĻĒāĻ°ā§‡āĻ° āĻ•ā§‹āĻĄā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ , template āĻ āĻ¯ā§‡āĻ‡ value āĻ†āĻ›ā§‡ , component instance āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻ¤āĻžāĻ¤ā§‡ āĻ†āĻŽāĻ°āĻž access āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°āĻŦāĨ¤ āĻ…āĻ¨ā§‡āĻ•āĻŸāĻž data āĻāĻ° āĻŽāĻ¤ā§‹āĨ¤

āĻ†āĻ° āĻ¯āĻ–āĻ¨ prop registered āĻšāĻ¯āĻŧā§‡ āĻ¯āĻžāĻŦā§‡āĨ¤ āĻ¤āĻ–āĻ¨ āĻ†āĻĒāĻ¨āĻŋ āĻĄāĻžāĻŸāĻž āĻ•ā§‡ āĻ¤āĻžāĻ° custom attribute āĻ āĻĒāĻžāĻ¸ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°āĻŦā§‡āĻ¨āĨ¤ āĻ āĻŋāĻ• āĻ¨āĻŋāĻšā§‡āĻ° āĻ•ā§‹āĻĄā§‡āĻ° āĻŽāĻ¤ā§‹ :

<blog-post title="My journey with Vue"></blog-post>
<blog-post title="Blogging with Vue"></blog-post>
<blog-post title="Why Vue is so fun"></blog-post>

āĻāĻŦāĻžāĻ° āĻšāĻ˛ā§āĻ¨ āĻ¸āĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻ•ā§‹āĻĄāĻŸāĻŋ āĻāĻ•āĻ¸āĻžāĻĨā§‡ āĻĻā§‡āĻ–āĻž āĻ¯āĻžāĻ•:

<html>
   <head>
      <title>VueJs Form Input Bindings</title>
     <script type = "text/javascript" src = "https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
   </head>
   <body>
      <div id="blog-post-demo">
         <blog-post title="My journey with Vue"></blog-post>
         <blog-post title="Blogging with Vue"></blog-post>
         <blog-post title="Why Vue is so fun"></blog-post>
      </div>
<br>
 
</div>
      <script>
       Vue.component('blog-post', {
         props: ['title'],
         template: '<h3>{{ title }}</h3>'
      })
       new Vue({ el: '#blog-post-demo' })
      </script>
   </body>
</html>

Output

VueJS āĻ āĻāĻ•āĻžāĻ§āĻŋāĻ• props āĻĄāĻŋāĻĢāĻžāĻ‡āĻ¨

VueJS āĻ āĻ†āĻĒāĻ¨āĻŋ āĻšāĻžāĻ‡āĻ˛ā§‡ āĻāĻ•āĻžāĻ§āĻŋāĻ• props āĻĄāĻŋāĻĢāĻžāĻ‡āĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨āĨ¤ āĻ¨āĻŋāĻšā§‡āĻ° āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻŸāĻŋ āĻĻā§‡āĻ–ā§āĻ¨:

<html>
   <head>
      <title>VueJs Multiple Props</title>
     <script type = "text/javascript" src = "https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
   </head>
   <body>
      <div id="students">
         <full-name first-name="Masud" last-name="Alam"></full-name>
         <full-name first-name="Sohel" last-name="Rana"></full-name>
   </div>
<br>
 
</div>
      <script>
     Vue.component('full-name', {
      props: ['first-name','last-name'],
      template: '<p>Hi {{ firstName }} {{lastName}}!</p>'
   })
       new Vue({ 
         el: '#students'
    
      })
      </script>
   </body>
</html>

Output

VueJS Multiple Props