vue3-json-ld

Use JSON+LD in Vue JS with ease
1,169 1
Install
npm install vue3-json-ld
Latest Version:1.0.11
Vue:3
License:MIT
Last Updated:Jul 31, 2024
Links: GitHub  ·  npm
Maintainer: andreaspabst

vue3-json-ld

Vue JS Seminar

Why is there a package?

JSON+LD is a great way to add structured data to your website. This is especially useful for SEO purposes. This package allows you to easily add JSON+LD to your Vue application.

But why not just add the JSON+LD directly to the HTML? Because the JSON+LD Data needs to be within a <script> tag. And Vue does not allow you to add a <script> tag within the template.

Further it is comperatively hard to put the JSON+LD data into the head of the document.

Installation

Run npm or yarn installation of the vue3-json-ld package:

yarn

$ yarn add vue3-json-ld

npm

$ npm install vue3-json-ld

Set Up your Vue Application

// App.vue

import { createApp } from 'vue'
import App from './App.vue'
import Vue3JsonLD from 'vue3-json-ld';

const app = createApp(App)
app.use(Vue3JsonLD)
app.mount('#app')

Usage

Basic Usage (JSON+LD as Slot)

<template>
  <vue-json-ld>
    {
      "@context": "http://schema.org",
      "@type": "Organization",
      "name": "Google",
      "url": "http://www.google.com",
      "sameAs": [
        "http://www.facebook.com/google",
        "http://www.twitter.com/google"
      ]
    }
  </vue-json-ld>
</template>

Basic Usage (JSON+LD as Slot)

<template>
  <vue-json-ld :json-ld="jsonLdObject" />
</template>

<script setup>
import { ref } from 'vue';
const jsonLdObject = ref({
  "@context": "http://schema.org",
  "@type": "Organization",
  "name": "Google",
  "url": "http://www.google.com",
  "sameAs": [
    "http://www.facebook.com/google",
    "http://www.twitter.com/google"
  ]
});
</script>

Props

head

This places the JSON LD in the head of the document. This is useful for SEO purposes.

<vue-json-ld :head="true" :json-ld="jsonLdObject" />

json-ld

This is the JSON+LD object that you want to render.

<vue-json-ld :json-ld="jsonLdObject" />

Slots

default

You can simply pass your json+ld String as the default slot (between the component tags):

<vue-json-ld>
  {
    "@context": "http://schema.org",
    "@type": "Organization",
    "name": "Google",
    "url": "http://www.google.com",
    "sameAs": [
      "http://www.facebook.com/google",
      "http://www.twitter.com/google"
    ]
  }
</vue-json-ld>

Resources

Related Packages

eom-form

vue.js schema based form generator

652 3
vue-json-rpc-client-fetch-withcredentials

A simple vue.js fetch based JSON RPC client written in TypeScript.

628 2
@lossendae/vue-table

Simple table component for Vue.js 2.x with pagination and sortable columns

736 11
@vesperjs/vue

This is Vesper for Vue.js.

8,552 1
@wzpo/md-ui

Another Momentum UI framework for Vue.js applications

2,054

Version History

Version Released Vue License
1.0.11 ^3.2.45 MIT
1.0.10 ^3.2.45 MIT
1.0.9 ^3.2.45 MIT
1.0.8 ^3.2.45 MIT
1.0.7 ^3.2.45 MIT