各ページで記述すればいいんだけど、面倒くさいのでLayoutでひとつ設定すればいいだけにしたい。
参考: https://note.com/fulcrum/n/na5d6a232f427
ステップ1: vue-social-sharing/nuxtをインストール
ステップ2: Layoutをいじる
<template><ShareNetwork@click="createSnsUrl"v-for="network in networks":network="network.network":key="network.network":title="socialSharing.title":url="socialSharing.url"twitter-user="afonomics"></template>
<script>export default {data () {return {networks: [{ network: 'twitter', name: 'Twitter', icon: 'twitter' },{ network: 'facebook', name: 'Facebook', icon: 'facebook' },{ network: 'linkedin', name: 'LinkedIn', icon: 'linkedin' }],socialSharing: {url: '',title: ''}}},mounted () {this.createSnsUrl()},methods: {createSnsUrl () {this.socialSharing.url = location.hrefthis.socialSharing.title = document.title}}}</script>
createSnsUrl のところで現在のURLとタイトルを取得する関数を定義して、moutedされたらそれが実行されるようにしているだけ。