AutoLink

A thin wrapper to RouterLink component to automatically handle internal and external links.

AutoLink

A thin wrapper to RouterLink component to automatically handle internal and external links.

Please read this article to learn how to build this package step by step and the background story.

To learn vue js please check out our courses Vue.js Complete Course + Guide and Vue 3 Essentials

Follow us on FaceBook to get the latest discount coupons and update to our articles and packages.

To keep it thin and performant we have chosen to provide only the minified version. Because, that’s what you really need. In case you are looking for the full version build your own from this source code as per Build section.

Install

pnpm install @mayank1513/auto-link --production

If you don’t have pnpm installed use npm install @mayank1513/auto-link --production

Add dependency in package.json

    "@mayank1513/auto-link": "^0.0.3"

Usage

Use AutoLink in same way you would use RouterLink. You can provide some additional parameters as described in Styling and Target section.

You do not need to handle internal and external links separately. You can just use AutoLink for all links. Just make sure you use https:// or http:// for external links.

<template>
  <ul id="nav">
    <li v-for="(link, title) in links" :key="link">
      <auto-link :to="link"></auto-link>
    </li>
  </ul>
  <router-view />
</template>

<script>
import AutoLink from '@mayank1513/auto-link'

export default {
  name: "App",
  data() {
    return {
      links: {
        Home: "/", // internal link
        About: "/about", // internal link
        Blogs: "https://mayank1513.medium.com", // external link
        "Vue Crash Course + Guide":
          "https://www.udemy.com/course/vuejs-complete-course-plus-guide/?referralCode=93BDA4A1FE3F73C37CD2", // external link
        "Vue 3 Essentials":
          "https://www.udemy.com/course/vue-3-essentials/?referralCode=E6D2FDE2B8B06C1991F1", // external link
      },
    };
  },
  components: {
    AutoLink,
  },
};
</script>

Styling

To style external links differently you can provide externalLinkClass as additional attribute.

<auto-link :to="link" external-link-class="your-css-classname-here"></auto-link>

You can also style a tag as AutoLink component uses a tag to render external links.

Make sure you take care of CSS cascading rules (e.g. use !important)

Target

By default external links are opened in new tab. If you want to override this behaviour please set target="_self"

Build

To build the example clone the repo git clone https://github.com/mayank1513/AutoLink.git and run

npm i && npm run build
// or
pnpm i && npm run build 

Help us to help you more

Contribute for a Cause