CoderFunda
  • Home
  • About us
    • Contact Us
    • Disclaimer
    • Privacy Policy
    • About us
  • Home
  • Php
  • HTML
  • CSS
  • JavaScript
    • JavaScript
    • Jquery
    • JqueryUI
    • Stock
  • SQL
  • Vue.Js
  • Python
  • Wordpress
  • C++
    • C++
    • C
  • Laravel
    • Laravel
      • Overview
      • Namespaces
      • Middleware
      • Routing
      • Configuration
      • Application Structure
      • Installation
    • Overview
  • DBMS
    • DBMS
      • PL/SQL
      • SQLite
      • MongoDB
      • Cassandra
      • MySQL
      • Oracle
      • CouchDB
      • Neo4j
      • DB2
      • Quiz
    • Overview
  • Entertainment
    • TV Series Update
    • Movie Review
    • Movie Review
  • More
    • Vue. Js
    • Php Question
    • Php Interview Question
    • Laravel Interview Question
    • SQL Interview Question
    • IAS Interview Question
    • PCS Interview Question
    • Technology
    • Other

09 February, 2021

Vue.js Mixins

 Programing Coderfunda     February 09, 2021     Vue.js Tutorial     No comments   

 

 

Vue.js Mixins

In Vue.js, mixins are a set of defined logic, stored in a predefined way specified by Vue.js. We can use these mixins over and over to add functionality to our Vue.js instances and components. So, we can say that mixins are used to distribute reusable functionalities for Vue components. They provide a flexible and straightforward way to deal with Vue.js components and share reusable code among them.

A mixin object can contain any component options. When a component uses a mixin, all options within the mixin are "mixed" into the component's own options and become an integral part of the component options.

Why are Mixins important?

Following is a list of some features that make Vue.js mixins necessary:

  • js mixins ensure that you do not need to repeat yourself. You can efficiently distribute reusable functionalities for Vue.js components and use them again and again.
  • js mixins provide an excellent option for flexibility. A mixin object contains Vue components options, which means it is a mix of both mixin and component options of Vue.js.
  • js mixins provide a great safety feature. They do not affect changes outside their defined scope if you have written them well.
  • js mixins are an excellent platform for code reusability.

The problem Vue.js mixins were supposed to solve

The main reason to use Vue.js is to resolve the re-use problem in the program. Suppose, you have two components that contain a method that does exactly the same thing or performs the same functionality in the two components same as the following code:

Component 1:

  1. <template>  
  2.   <div>  
  3.     <button v-on:click="clicked('you just clicked on button  1')">  
  4.       Button 1  
  5.     </button>  
  6.   </div>  
  7. </template>;  
  8. export default {  
  9.   name: "Test",  
  10.   methods: {  
  11.     clicked(value) {  
  12.       alert(value);  
  13.     }  
  14.   }  
  15. };  

Component 2:

  1. <template>  
  2.   <div>  
  3.     <button v-on:click="clicked('you just clicked on button  2')">  
  4.       Button 2  
  5.     </button>  
  6.   </div>  
  7. </template>;  
  8. export default {  
  9.   name: "Modal",  
  10.   methods: {  
  11.     clicked(value) {  
  12.       alert(value);  
  13.     }  
  14.   }  
  15. };  

After using the both components, your App.vue file should have the both components imported and declared same as following:

  1. <template>  
  2.   <div id="app">  
  3.     <img alt="Vue logo" src="./assets/logo.png">  
  4.     <Test />  
  5.     <modal />  
  6.   </div>  
  7. </template>;  
  8. <script>  
  9. import Test from "./components/Test.vue";  
  10. import Modal from "./components/Modal.vue";  
  11. export default {  
  12.   name: "app",  
  13.   components: {  
  14.     Test,  
  15.     Modal  
  16.   }  
  17. };  
  18. </script>  

Here, you can see that we have repeated the click method code block in both components. This is not an ideal and efficient way to handle memory resources; that's why Vue.js Mixin was introduced.

Vue.js has introduced the mixins as an excellent solution to this problem. By using mixins, you can encapsulate a piece of code or functionality and then import it to use when you need it in various components.

Vue.js Mixin Syntax

The Vue.js mixin syntax would look like the following code:

  1. // define a mixin object  
  2. var myMixin = {  
  3.   created: function() {  
  4.     this.hello();  
  5.   },  
  6.   methods: {  
  7.     hello: function() {  
  8.       console.log("hello from mixin!");  
  9.     }  
  10.   }  
  11. };  
  12. // define a component that uses this mixin  
  13. var Component = Vue.extend({  
  14.   mixins: [myMixin]  
  15. });  
  16. var component = new Component(); // => "hello from mixin!"  

Let's take a simple example to understand the concept of Vue.js Mixin well.

Index.html file:

  1. <html>  
  2.    <head>  
  3.       <title>Vue.js </title>  
  4.       <link rel="stylesheet" href="index.css">  
  5.         <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>  
  6. <script src="https://unpkg.com/vue/dist/vue.js"></script>  
  7.     </head>  
  8.     <body>  
  9.       <div id = "mixin_1"></div>  
  10.       <script type = "text/javascript">  
  11.          var vm = new Vue({  
  12.             el: '#mixin_1',  
  13.             data: {  
  14.             },  
  15.             methods : {  
  16.             },  
  17.          });  
  18.          var myMixin = {  
  19.             created: function () {  
  20.                this.startmixin()  
  21.             },  
  22.             methods: {  
  23.                startmixin: function () {  
  24.                   alert("This is a Vue.js Mixin example!!");  
  25.                }  
  26.             }  
  27.          };  
  28.       </script>  
  29.       <script src="index.js"></script>  
  30.    </body>  
  31. </html>  

Index.js file:

  1. var Component = Vue.extend({  
  2.             mixins: [myMixin]  
  3.          })  
  4.          var component = new Component()  

Let's use a simple CSS file to make the output more attractive.

Index.css file:

  1. html, body {  
  2.     margin: 5px;  
  3.     padding: 0;  
  4. }  

After the execution of the program, you will see the following output:

Output:


Source by : javatpoint.com
Read More
  • Share This:  
  •  Facebook
  •  Twitter
  •  Google+
  •  Stumble
  •  Digg

Vue.js Routing

 Programing Coderfunda     February 09, 2021     Vue.js Tutorial     No comments   

 

 

Vue.js Routing

Vue.js does not have a built-in router feature, but you can easily create a single page application that supports routing using the recommended and officially-supported vue-router library.

There are some steps that you have to follow to install the router in Vue.js. You can use router by direct download it from CDN or using NPM or using Github.

Download from CDM directly

You can directly download the latest version of vue-router from CDN. It is available at https://unpkg.com/vue-router/dist/vue-router.js.

The unpkg.com contains the npm-based cdn links and always updated to the recent version. After downloading the unpkg.com file, host it to server, and use it with a script tag along with Vue.js as follows.

  1. <script src = "/path/to/vue.js"></script>  
  2. <script src = "/path/to/vue-router.js"></script>  

If you want to use it without downloading, you can use it as follows:

  1. <script src="https://unpkg.com/vue-router/dist/vue-router.js"></script>  

Install router using NPM

Open the Node.js command prompt and run the following command to install the vue-router.

  1. npm  install vue-router  

Vue.js Routing

Install router using GitHub

Run the following commands to clone the router repository from GitHub:

  1. git clone https://github.com/vuejs/vue-router.git node_modules/vue-router  
  2. cd node_modules/vue-router  
  3. npm install  
  4. npm run build  

Let's take a simple example to understand the concept of routing in Vue.js:

Example

Index.html file:

  1. <html>  
  2.    <head>  
  3.       <title>Vue.js Routing</title>  
  4.       <link rel="stylesheet" href="index.css">  
  5.         <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>  
  6. <script src="https://unpkg.com/vue/dist/vue.js"></script>  
  7.  <script src="https://unpkg.com/vue-router/dist/vue-router.js"></script>  
  8.     </head>  
  9.     <body>  
  10.       <div id = "router_1">  
  11.          <h2>This is Routing Example</h2>  
  12.          <p>  
  13. <!-- use router-link component for navigation. -->  
  14. <!-- `<router-link>` will be rendered as an `<a>` tag by default -->  
  15.             <router-link to = "/route1">Click on Router Link 1</router-link>  
  16.             <router-link to = "/route2"> Click on Router Link 2</router-link>  
  17.          </p>  
  18.          <!-- route outlet -->  
  19.          <!-- component matched by the route will render here -->  
  20.          <router-view></router-view>  
  21.       </div>  
  22.       <script type = "text/javascript">  
  23.          const Route1 = { template: '<div style = "border-radius:30px;background-color:lightpink;width:300px;height:100px;margin:10px;font-size:25px;padding:10px;">You are seeing router link 1</div>' }  
  24.          const Route2 = { template: '<div style = "border-radius:20px;background-color:lightgreen;width:300px;height:100px;margin:10px;font-size:25px;padding:10px;"> You are seeing router link 2</div>' }  
  25.          const routes = [  
  26.             { path: '/route1', component: Route1 },  
  27.             { path: '/route2', component: Route2 }  
  28.          ];  
  29.          const router = new VueRouter({  
  30.             routes // short for `routes: routes`  
  31.          });  
  32.       </script>  
  33.       <script src="index.js"></script>  
  34.    </body>  
  35. </html>  

Index.js file:

  1. var vm = new Vue({  
  2.             el: '#router_1',  
  3.             router  
  4.          })  

Let's use a simple CSS file to make the output more attractive.

Index.css file:

  1. html, body {  
  2.     margin: 5px;  
  3.     padding: 0;  
  4. }  

After the execution of the program, you will see the following output:

Output:

Vue.js Routing

Click on the router link 2, and you will see that it is redirected to the following result.

Vue.js Routing

Example Explanation

In the above example, you can see that we have added the vue-router.js file as follows:

  1. <script src="https://unpkg.com/vue/dist/vue.js"></script>  
  2.  <script src="https://unpkg.com/vue-router/dist/vue-router.js"></script>4  

In the following code, we have created two router links. We have defined these router links in the body section as follows:

  1. <router-link to = "/route1">Click on Router Link 1</router-link>  
  2.  <router-link to = "/route2"> Click on Router Link 2</router-link>  

Here, <router-link> is a component used to navigate to the HTML content and display it to the user. The to property specifies the destination. For example, the file where the link is displayed which you have to click.

The router is initialized in the script section where there are two constants created as follows:

  1. const Route1 = { template: '<div style = "border-radius:30px;background-color:lightpink;width:300px;height:100px;margin:10px;font-size:25px;padding:10px;">You are seeing router link 1</div>' }  
  2.          const Route2 = { template: '<div style = "border-radius:20px;background-color:lightgreen;width:300px;height:100px;margin:10px;font-size:25px;padding:10px;"> You are seeing router link 2</div>' }  

In the above code, we have specifies the templates that would be shown when you click on the router link.

Next is the routes const where we have defined the path which have to be displayed in the URL.

  1. const routes = [  
  2.    { path: '/route1', component: Route1 },  
  3.    { path: '/route2', component: Route2 }  
  4. ];  

Routes are used to define the path and the component. The path will be displayed in the output when the user clicks on the router link.

The component takes the names of the templates to be displayed. The path from the routes needs to match with the router link to the property.

For example,

  1. <router-link to = "name_of_-the_path"></router-link>  

Now, we have created the VueRouter instance using the following code:

  1. const router = new VueRouter({  
  2.    routes // short for `routes: routes`  
  3. });  

The VueRouter constructor takes the routes as the param. We have used the following code to assign the router object to the main Vue instance.

  1. var vm = new Vue({  
  2.             el: '#router_1',  
  3.             router  
  4.          })  

After executing the above example, you will see the output in the browser. If you can inspect and check the router link, we will find that it adds class to the active element. The class added is class = "router-link-exact-active router-link-active".

Pass Props to Router Link

Let's see how to pass properties to Router Link. In the above example, we have passed a property "to" to the router link as follows:

  1. <router-link to = "/route1">Click on Router Link 1</router-link>  
  2. <router-link to = "/route2"> Click on Router Link 2</router-link>  

This property can be passed in many other ways to the router link.

The to prop

It is used to specify the destination path given to the <router-link>. When you click on the link, it will pass the value to router.push() internally. The value needs to be a string or a location object. There are three ways to pass the value using the "to" property.

Example 1:

  1. <router-link to = "/route1">Click on Router Link 1</router-link>  
  2. It is rendered as:   
  3. <a href = "#/route">Router Link </a>  

Example 2:

  1. <router-link v-bind:to = "{path:'/route1'}">Click on Router Link 2</router-link> // When using an object, it is recommended to bind it as shown in e.g. 2.  

Example 3:

  1. <router-link v-bind:to = "{path:'/route1', query: { name: 'Alex' }}">Click on Router Link 3</router-link>//You can pass a query string  as shown in e.g. 3. This is an example of router link with query string.  

We have used the example 1 method in the above examples. Let's see the second and third method in the following example.

Index.html file:

  1. <html>  
  2.    <head>  
  3.       <title>Vue.js Routing</title>  
  4.       <link rel="stylesheet" href="index.css">  
  5.         <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>  
  6. <script src="https://unpkg.com/vue/dist/vue.js"></script>  
  7.  <script src="https://unpkg.com/vue-router/dist/vue-router.js"></script>  
  8.     </head>  
  9.     <body>  
  10.       <div id = "router_1">  
  11.          <h2>This is Routing Example</h2>  
  12.          <p>  
  13. <!-- use router-link component for navigation. -->  
  14. <!-- `<router-link>` will be rendered as an `<a>` tag by default -->  
  15.             <router-link v-bind:to = "{path:'/route2'}">Click on Router Link 2</router-link>   
  16.             <router-link v-bind:to = "{path:'/route3', query: { name: 'Alex' }}">Click on Router Link 3</router-link>  
  17.          </p>  
  18.          <!-- route outlet -->  
  19.          <!-- component matched by the route will render here -->  
  20.          <router-view></router-view>  
  21.       </div>  
  22.       <script type = "text/javascript">  
  23.          const Route2 = { template: '<div style = "border-radius:30px;background-color:lightpink;width:300px;height:100px;margin:10px;font-size:25px;padding:10px;">You are seeing router link 2</div>' }  
  24.          const Route3 = { template: '<div style = "border-radius:20px;background-color:lightgreen;width:300px;height:100px;margin:10px;font-size:25px;padding:10px;"> You are seeing router link 3</div>' }  
  25.          const routes = [  
  26.             { path: '/route2', component: Route2 },  
  27.             { path: '/route3', component: Route3 }  
  28.          ];  
  29.          const router = new VueRouter({  
  30.             routes // short for `routes: routes`  
  31.          });  
  32.       </script>  
  33.       <script src="index.js"></script>  
  34.    </body>  
  35. </html>  

Index.js file:

  1. var vm = new Vue({  
  2.             el: '#router_1',  
  3.             router  
  4.          })  

After the execution of the program, you will see the following output:

Output:

Vue.js Routing

Now, click on the router link 3, and you will see the set name as a query string in the url. See the output:

Vue.js Routing

The replace prop

The replace property is used to replace the router link and call the router.replace() instead of router.push(). If yu use replace prop, the navigation history is not stored.

Index.html file:

  1. <html>  
  2.    <head>  
  3.       <title>Vue.js Routing</title>  
  4.       <link rel="stylesheet" href="index.css">  
  5.         <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>  
  6. <script src="https://unpkg.com/vue/dist/vue.js"></script>  
  7.  <script src="https://unpkg.com/vue-router/dist/vue-router.js"></script>  
  8.     </head>  
  9.     <body>  
  10.       <div id = "router_1">  
  11.          <h2>This is Routing Example</h2>  
  12.          <p>  
  13. <!-- use router-link component for navigation. -->  
  14. <!-- `<router-link>` will be rendered as an `<a>` tag by default -->  
  15.             <router-link v-bind:to = "{path:'/route2'}">Click on Router Link 2</router-link>   
  16.             <router-link v-bind:to = "{path:'/route3', query: { name: 'Panda' }}"   replace>This link is Replaced</router-link>  
  17.          </p>  
  18.          <!-- route outlet -->  
  19.          <!-- component matched by the route will render here -->  
  20.          <router-view></router-view>  
  21.       </div>  
  22.       <script type = "text/javascript">  
  23.          const Route2 = { template: '<div style = "border-radius:30px;background-color:lightpink;width:300px;height:100px;margin:10px;font-size:25px;padding:10px;">You are seeing router link 2</div>' }  
  24.          const Route3 = { template: '<div style = "border-radius:20px;background-color:lightgreen;width:300px;height:100px;margin:10px;font-size:25px;padding:10px;"> You are seeing router link 3</div>' }  
  25.          const routes = [  
  26.             { path: '/route2', component: Route2 },  
  27.             { path: '/route3', component: Route3 }  
  28.          ];  
  29.          const router = new VueRouter({  
  30.             routes // short for `routes: routes`  
  31.          });  
  32.       </script>  
  33.       <script src="index.js"></script>  
  34.    </body>  
  35. </html>  

Index.js file will be same.

After the execution of the program, you will see the following output:

Output:

Vue.js Routing

You can see that when you click on the "This link is Replaced" link, the name is changed in the url.

The append prop

The append tag is used to add with the <router-link><router-link> link to make the path relative.

Index.html file:

  1. <html>  
  2.    <head>  
  3.       <title>Vue.js Routing</title>  
  4.       <link rel="stylesheet" href="index.css">  
  5.         <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>  
  6. <script src="https://unpkg.com/vue/dist/vue.js"></script>  
  7.  <script src="https://unpkg.com/vue-router/dist/vue-router.js"></script>  
  8.     </head>  
  9.     <body>  
  10.       <div id = "router_1">  
  11.          <h2>This is Routing Example</h2>  
  12.          <p>  
  13. <!-- use router-link component for navigation. -->  
  14. <!-- `<router-link>` will be rendered as an `<a>` tag by default -->  
  15.             <router-link v-bind:to = "{path:'/route2'}">Click on Router Link 2</router-link>   
  16.             <router-link v-bind:to = "{ path: '/route3'}" append>This is an appended link</router-link>  
  17.          </p>  
  18.          <!-- route outlet -->  
  19.          <!-- component matched by the route will render here -->  
  20.          <router-view></router-view>  
  21.       </div>  
  22.       <script type = "text/javascript">  
  23.          const Route2 = { template: '<div style = "border-radius:30px;background-color:lightpink;width:300px;height:100px;margin:10px;font-size:25px;padding:10px;">You are seeing router link 2</div>' }  
  24.          const Route3 = { template: '<div style = "border-radius:20px;background-color:lightgreen;width:300px;height:100px;margin:10px;font-size:25px;padding:10px;"> You are seeing the appended link router</div>' }  
  25.          const routes = [  
  26.             { path: '/route2', component: Route2 },  
  27.             { path: '/route3', component: Route3 }  
  28.          ];  
  29.          const router = new VueRouter({  
  30.             routes // short for `routes: routes`  
  31.          });  
  32.       </script>  
  33.       <script src="index.js"></script>  
  34.    </body>  
  35. </html>  

Index.js file:

  1. var vm = new Vue({  
  2.             el: '#router_1',  
  3.             router  
  4.          })  

Let's use a simple CSS file to make the output more attractive.

Index.css file:

  1. html, body {  
  2.     margin: 5px;  
  3.     padding: 0;  
  4. }  

After the execution of the program, you will see the following output:

Output:

Vue.js Routing

The append prop

The append tag is used to add with the <router-link > to make the path relative. Let's take an example.

Example:

Index.html file:

  1. <html>  
  2.    <head>  
  3.       <title>Vue.js Routing</title>  
  4.       <link rel="stylesheet" href="index.css">  
  5.         <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>  
  6. <script src="https://unpkg.com/vue/dist/vue.js"></script>  
  7.  <script src="https://unpkg.com/vue-router/dist/vue-router.js"></script>  
  8.     </head>  
  9.     <body>  
  10.       <div id = "router_1">  
  11.          <h2>This is Routing Example</h2>  
  12.          <p>  
  13. <!-- use router-link component for navigation. -->  
  14. <!-- `<router-link>` will be rendered as an `<a>` tag by default -->  
  15.             <router-link v-bind:to = "{path:'/route2'}">Click on Router Link 2</router-link>   
  16.             <router-link v-bind:to = "{ path: '/route3'}" append>This is an appended link</router-link>  
  17.          </p>  
  18.          <!-- route outlet -->  
  19.          <!-- component matched by the route will render here -->  
  20.          <router-view></router-view>  
  21.       </div>  
  22.       <script type = "text/javascript">  
  23.          const Route2 = { template: '<div style = "border-radius:30px;background-color:lightpink;width:300px;height:100px;margin:10px;font-size:25px;padding:10px;">You are seeing router link 2</div>' }  
  24.          const Route3 = { template: '<div style = "border-radius:20px;background-color:lightgreen;width:300px;height:100px;margin:10px;font-size:25px;padding:10px;"> You are seeing the appended link router</div>' }  
  25.          const routes = [  
  26.             { path: '/route2', component: Route2 },  
  27.             { path: '/route3', component: Route3 }  
  28.          ];  
  29.          const router = new VueRouter({  
  30.             routes // short for `routes: routes`  
  31.          });  
  32.       </script>  
  33.       <script src="index.js"></script>  
  34.    </body>  
  35. </html>  

Index.js file:

  1. var vm = new Vue({  
  2.             el: '#router_1',  
  3.             router  
  4.          })  

Let's use a simple CSS file to make the output more attractive.

Index.css file:

  1. html, body {  
  2.     margin: 5px;  
  3.     padding: 0;  
  4. }  

After the execution of the program, you will see the following output:

Output:

Vue.js Routing

The tag prop

The <router-link> is rendered as a tag. The tag prop is used when you want to render it as some other tag. For example, if you want to render <router-link> as "span", you should specify it as tag = "span". Let's take a simple example.

Example:

Index.html file:

  1. <html>  
  2.    <head>  
  3.       <title>Vue.js Routing</title>  
  4.       <link rel="stylesheet" href="index.css">  
  5.         <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>  
  6. <script src="https://unpkg.com/vue/dist/vue.js"></script>  
  7.  <script src="https://unpkg.com/vue-router/dist/vue-router.js"></script>  
  8.     </head>  
  9.     <body>  
  10.       <div id = "router_1">  
  11.          <h2>This is Routing Example</h2>  
  12.          <p>  
  13.              <router-link v-bind:to = "{ path: '/route2'}" tag = "span">Click on Router Link 2</router-link>   
  14.             <router-link v-bind:to = "{ path: '/route3'}" tag = "span">Click on Router Link 3</router-link>  
  15.          </p>  
  16.          <!-- route outlet -->  
  17.          <!-- component matched by the route will render here -->  
  18.          <router-view></router-view>  
  19.       </div>  
  20.       <script type = "text/javascript">  
  21.          const Route2 = { template: '<div style = "border-radius:30px;background-color:lightpink;width:300px;height:100px;margin:10px;font-size:25px;padding:10px;">You are seeing router link 2</div>' }  
  22.          const Route3 = { template: '<div style = "border-radius:20px;background-color:lightgreen;width:300px;height:100px;margin:10px;font-size:25px;padding:10px;"> You are seeing router link 3</div>' }  
  23.          const routes = [  
  24.             { path: '/route2', component: Route2 },  
  25.             { path: '/route3', component: Route3 }  
  26.          ];  
  27.          const router = new VueRouter({  
  28.             routes // short for `routes: routes`  
  29.          });  
  30.       </script>  
  31.       <script src="index.js"></script>  
  32.    </body>  
  33. </html>  

Index.js file:

The index.js file would be same as we used in previous examples.

After the execution of the program, you will see the following output:

Output:

Vue.js Routing

In the above example, you can see that the tag displayed now is a span tag. They are not seen as a clickable link but you can click them. Now, click on the router link 3 and see the result.

Vue.js Routing

The active-class prop

The active-class property is added to <router-link> when you want to make it active. It is used to show that the router link is active. It is added as active-class = "_active".

The following code specifies how to use it in an example.

Syntax:

  1. <style>  
  2.    ._active{  
  3.       background-color : red;  
  4.    }  
  5. </style>  
  6. <p>  
  7. <router-link v-bind:to = "{ path: '/route2'}" active-class = "._active">Click on Router Link 2</router-link>  
  8. <router-link v-bind:to = "{ path: '/route3'}" tag = "span">Click on Router Link 3</router-link>  
  9. </p>  

It will make the "Click on Router Link 2" path active while "Click on Router Link 3" will be same.

The exact-active-class prop

The exact-active-class configures the active CSS class applied when the link is active with an exact match. The default exact active class is applied as router-link-exact-active.

The following code specifies how to use it in an example.

Syntax:

  1. <style>  
  2.    ._active{  
  3.       background-color : red;  
  4.    }  
  5. </style>  
  6. <p>  
  7. <router-link v-bind:to = "{ path: '/route2'}" exact-active-class = "._active">Click on Router Link 2</router-link>  
  8. <router-link v-bind:to = "{ path: '/route3'}" tag = "span">Click on Router Link 3</router-link>  
  9. </p>  

The event prop

In the previous example you have seen that the by default event for router-link is click event. When you clicked on the link, the router links were shown. You can change this by using the event property. See the following example:

Example:

Index.html file:

  1. <html>  
  2.    <head>  
  3.       <title>Vue.js Routing</title>  
  4.       <link rel="stylesheet" href="index.css">  
  5.         <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>  
  6. <script src="https://unpkg.com/vue/dist/vue.js"></script>  
  7.  <script src="https://unpkg.com/vue-router/dist/vue-router.js"></script>  
  8.     </head>  
  9.     <body>  
  10.       <div id = "router_1">  
  11.          <h2>This is Routing Example</h2>  
  12. <style>  
  13.    ._active{  
  14.       background-color : red;  
  15.    }  
  16. </style>  
  17. <p>  
  18. <router-link v-bind:to = "{ path: '/route2'}" event = "mouseover">Hover this link</router-link>  
  19.             <router-link v-bind:to = "{ path: '/route3'}" tag = "span">Click on Router Link 3</router-link>  
  20.          </p>  
  21.          <!-- route outlet -->  
  22.          <!-- component matched by the route will render here -->  
  23.          <router-view></router-view>  
  24.       </div>  
  25.       <script type = "text/javascript">  
  26.          const Route2 = { template: '<div style = "border-radius:30px;background-color:lightpink;width:300px;height:100px;margin:10px;font-size:25px;padding:10px;">You are seeing router link 2</div>' }  
  27.          const Route3 = { template: '<div style = "border-radius:20px;background-color:lightgreen;width:300px;height:100px;margin:10px;font-size:25px;padding:10px;"> You are seeing router link 3</div>' }  
  28.          const routes = [  
  29.             { path: '/route2', component: Route2 },  
  30.             { path: '/route3', component: Route3 }  
  31.          ];  
  32.          const router = new VueRouter({  
  33.             routes // short for `routes: routes`  
  34.          });  
  35.       </script>  
  36.       <script src="index.js"></script>  
  37.    </body>  
  38. </html>  

Index.js file:

The Index.js file will be same as above example.

After the execution of the program, you will see the following output:

Output:

Vue.js Routing

When you hover your mouse cursor on the first link, you will see the following result.

Sources by : javatpoint

Read More
  • Share This:  
  •  Facebook
  •  Twitter
  •  Google+
  •  Stumble
  •  Digg
Newer Posts Older Posts Home

Meta

Popular Posts

  • Credit card validation in laravel
      Validation rules for credit card using laravel-validation-rules/credit-card package in laravel Install package laravel-validation-rules/cr...
  • Write API Integrations in Laravel and PHP Projects with Saloon
    Write API Integrations in Laravel and PHP Projects with Saloon Saloon  is a Laravel/PHP package that allows you to write your API integratio...
  • iOS 17 Force Screen Rotation not working on iPAD only
    I have followed all the links on Google and StackOverFlow, unfortunately, I could not find any reliable solution Specifically for iPad devic...
  • C++ in Hindi Introduction
    C ++ का परिचय C ++ एक ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग लैंग्वेज है। C ++ को Bjarne Stroustrup द्वारा विकसित किया गया था। C ++ में आने से पह...
  • Python AttributeError: 'str' has no attribute glob
    I am trying to look for a folder in a directory but I am getting the error.AttributeError: 'str' has no attribute glob Here's ...

Categories

  • Ajax (26)
  • Bootstrap (30)
  • DBMS (42)
  • HTML (12)
  • HTML5 (45)
  • JavaScript (10)
  • Jquery (34)
  • Jquery UI (2)
  • JqueryUI (32)
  • Laravel (1017)
  • Laravel Tutorials (23)
  • Laravel-Question (6)
  • Magento (9)
  • Magento 2 (95)
  • MariaDB (1)
  • MySql Tutorial (2)
  • PHP-Interview-Questions (3)
  • Php Question (13)
  • Python (36)
  • RDBMS (13)
  • SQL Tutorial (79)
  • Vue.js Tutorial (68)
  • Wordpress (150)
  • Wordpress Theme (3)
  • codeigniter (108)
  • oops (4)
  • php (853)

Social Media Links

  • Follow on Twitter
  • Like on Facebook
  • Subscribe on Youtube
  • Follow on Instagram

Pages

  • Home
  • Contact Us
  • Privacy Policy
  • About us

Blog Archive

  • July (2)
  • September (100)
  • August (50)
  • July (56)
  • June (46)
  • May (59)
  • April (50)
  • March (60)
  • February (42)
  • January (53)
  • December (58)
  • November (61)
  • October (39)
  • September (36)
  • August (36)
  • July (34)
  • June (34)
  • May (36)
  • April (29)
  • March (82)
  • February (1)
  • January (8)
  • December (14)
  • November (41)
  • October (13)
  • September (5)
  • August (48)
  • July (9)
  • June (6)
  • May (119)
  • April (259)
  • March (122)
  • February (368)
  • January (33)
  • October (2)
  • July (11)
  • June (29)
  • May (25)
  • April (168)
  • March (93)
  • February (60)
  • January (28)
  • December (195)
  • November (24)
  • October (40)
  • September (55)
  • August (6)
  • July (48)
  • May (2)
  • January (2)
  • July (6)
  • June (6)
  • February (17)
  • January (69)
  • December (122)
  • November (56)
  • October (92)
  • September (76)
  • August (6)

Loading...

Laravel News

Loading...

Copyright © CoderFunda | Powered by Blogger
Design by Coderfunda | Blogger Theme by Coderfunda | Distributed By Coderfunda