1.开发环境 vue
2.电脑系统 windows10专业版
3.在应用vue开发的过程中,咱们可能会有这样的需要,就是分享到社交的网站和软件上,比方:分享到email/facebook/google/Linkedin/Twitter/Whatsapp等,上面我来分享一下我的教训和解决办法,心愿对你有所帮忙。
4.废话不多说,间接上效果图:
5.首先是装置:
//字体库npm i vue-awesome -S //社交分享插件npm install vue-socialmedia-share -S
6.我在这里进行了封装,在components中增加如下:
7.组件Facebook代码如下:
<template> <span @click="facebookLink(url)"> <icon name="brands/facebook" color="#3B5998" :scale="scale"></icon> </span></template><script> import objectToGetParams from '@/utils/objectToGetParams'; import 'vue-awesome/icons/brands/facebook'; import Icon from 'vue-awesome/components/Icon'; export default { name: 'facebook', components: { Icon }, methods: { facebookLink(url) { window.open( `https://www.facebook.com/sharer/sharer.php` + objectToGetParams({ u: url }), '__blank' ); } }, props: { url: { required: true, type: String }, scale: { required: false, type: String } } };</script>
8.在src下新建一个utils文件夹,在这个文件夹下新建一个 objectToGetParams.js,增加代码如下:
export default function objectToGetParams(object) { return ( '?' + Object.keys(object) .filter(key => !!object[key]) .map(key => `${key}=${encodeURIComponent(object[key])}`) .join('&') );}
9.vue组件中WhatsApp.vue代码如下:
<template> <span @click="whatsappLink(url, title)"> <icon name="brands/whatsapp-square" color="#34af23" :scale="scale"></icon> </span></template><script> import objectToGetParams from '@/utils/objectToGetParams'; import 'vue-awesome/icons/brands/whatsapp-square'; import Icon from 'vue-awesome/components/Icon'; export default { name: 'whatsapp', components: { Icon }, methods: { whatsappLink(url, separator, title) { window.open( 'https://api.whatsapp.com/send' + objectToGetParams({ text: title ? title + separator + url : url }), '__blank' ); } }, components: { Icon }, props: { url: { required: true, type: String }, title: { required: false, type: String }, scale: { required: false, type: String } }, data() { return { separator: '' }; } };</script>
9.如何在父组件中应用呢?在父组件中增加如下:
<template> <div class="Chen"> <p>我是社交分享组件的应用</p> <facebook :url="url" scale="3"></facebook> <whats-app :url="url" scale="3"></whats-app> </div></template><script> import Facebook from '../components/Facebook.vue'; import WhatsApp from '../components/WhatsApp'; export default { name: 'Chen', components: { Facebook, WhatsApp }, data() { return { url: 'https://github.com/mbj36' } }, created() { }, methods: { } }</script><style scoped></style>
10.点击facebook,成果如下:
11.本期的分享到了这里就完结啦,心愿对你有所帮忙,让咱们一起致力走向巅峰。