封裝分享組件

h-share.gif

1. 引入相關(guān)的JS

 <script src="https://cdn.bootcss.com/vue/2.5.1/vue.min.js"></script>
<script src="/lib/vue-qrcode.min.js"></script>

2. 利用虛擬DOM封裝組件

var VueQrcode = window.VueQrcode;
Vue.component('qrcode', VueQrcode);
Vue.component('h-share', {
    render: function (createElement) {
        var self = this;
        return createElement(
            'div',
            {
                style: {
                    display: 'inline-block'
                },
            },
            [
                createElement('i', {
                    attrs: {
                        class: 'el-icon-share'
                    },
                    style: {
                        marginRight: '10px'
                    }
                }, '分享'),
                createElement('span', {
                    attrs: {
                        class: 'icon-wechat'
                    },
                    style: {
                        marginRight: '5px'
                    },
                    on: {
                        click: function () {
                            window.ELEMENT.MessageBox({
                                title: '分享二維碼',
                                center: true,
                                message: createElement('div', null, [
                                    createElement('qrcode', {
                                        props: {
                                            value: self.link,
                                            tag: 'img',
                                            options:{
                                                size: 150
                                            }
                                        }
                                    }, '')
                                ]),
                                showCancelButton: false,
                                showConfirmButton: false,
                                beforeClose: (action, instance, done) => {
                                    if (action === 'confirm') {
                                       console.log(action);
                                    } else {
                                        done();
                                    }
                                }
                            }).then(action => {
                                window.ELEMENT.Message({
                                    type: 'info',
                                    message: 'action: ' + action
                                });
                            }).catch(() => {});
                        }
                    }
                }, ''),
                createElement('span', {
                    attrs: {
                        class: 'icon-link'
                    },
                    on: {
                        click: function () {
                            window.ELEMENT.MessageBox({
                                title: '分享鏈接',
                                message: createElement('div', null, [
                                    createElement('el-input', {
                                        props: {
                                            value: self.link + "\n" + self.text,
                                            type: "textarea"
                                        },
                                        attrs: {
                                            id: 'input'
                                        },
                                    }, '')
                                ]),
                                showCancelButton: true,
                                confirmButtonText: '點擊復(fù)制',
                                cancelButtonText: '取消',
                                beforeClose: (action, instance, done) => {
                                    if (action === 'confirm') {
                                        var input = document.getElementById("input");
                                        input.select(); // 選中文本
                                        document.execCommand("copy"); // 執(zhí)行瀏覽器復(fù)制命令
                                        window.ELEMENT.Message({
                                            type:'success',
                                            message: '復(fù)制成功'
                                        });
                                    } else {
                                        done();
                                    }
                                }
                            }).then(action => {
                                window.ELEMENT.Message({
                                    type: 'info',
                                    message: 'action: ' + action
                                });
                            }).catch(() => {});
                        }
                    }
                }, '')
            ]
        )
    },
    attrs: {
        class: 'share-group'
    },
    props: {
        text: {
            type: String,
            required: true
        },
        link: {
            type: String,
            required: true
        }
    }
})

3. 如何使用組件

 <script src="/path/h-share.js"></script>
<h-share :text="text" :link="link" class="mr-20"></h-share>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末麻献,一起剝皮案震驚了整個濱河市帆离,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機迫淹,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進店門秘通,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人敛熬,你說我怎么就攤上這事肺稀。” “怎么了应民?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵话原,是天一觀的道長。 經(jīng)常有香客問我瑞妇,道長稿静,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任辕狰,我火速辦了婚禮改备,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘蔓倍。我一直安慰自己悬钳,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布偶翅。 她就那樣靜靜地躺著默勾,像睡著了一般。 火紅的嫁衣襯著肌膚如雪聚谁。 梳的紋絲不亂的頭發(fā)上母剥,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天,我揣著相機與錄音形导,去河邊找鬼环疼。 笑死,一個胖子當(dāng)著我的面吹牛朵耕,可吹牛的內(nèi)容都是我干的炫隶。 我是一名探鬼主播,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼阎曹,長吁一口氣:“原來是場噩夢啊……” “哼伪阶!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起处嫌,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤栅贴,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后熏迹,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體筹误,經(jīng)...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年癣缅,在試婚紗的時候發(fā)現(xiàn)自己被綠了厨剪。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,018評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡友存,死狀恐怖祷膳,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情屡立,我是刑警寧澤直晨,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站膨俐,受9級特大地震影響勇皇,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜焚刺,卻給世界環(huán)境...
    茶點故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一敛摘、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧乳愉,春花似錦兄淫、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至坡脐,卻和暖如春泄私,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背备闲。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工晌端, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人浅役。 一個月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓斩松,卻偏偏與公主長得像,于是被迫代替她去往敵國和親觉既。 傳聞我的和親對象是個殘疾皇子惧盹,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,762評論 2 345

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,501評論 25 707
  • 1、通過CocoaPods安裝項目名稱項目信息 AFNetworking網(wǎng)絡(luò)請求組件 FMDB本地數(shù)據(jù)庫組件 SD...
    陽明先生_x閱讀 15,968評論 3 119
  • 驕子游子天子臣子 這個世界太凌亂 成心無意有權(quán)必然 滿腔愁怨無人顧盼 號角起紅塵吹 紅旗飄繁星墜 萬人醒瞪讼,唯我獨醉
    吃了嗎您那閱讀 226評論 1 4
  • 轉(zhuǎn)眼間钧椰,11月馬上結(jié)束,12月即將來臨符欠,2015年已經(jīng)過去了十二分之十一嫡霞。這個周末,恰好有空希柿,于是決定去一趟久違的...
    余美魚閱讀 245評論 5 2
  • 也許是一種焦慮 也許是不愿意早睡 或者是假裝自己很努力 想著不相干的人 想著不相干的事 把手機開屏又關(guān)屏 從看視頻...
    心中有數(shù)13閱讀 218評論 0 0