vue自定義toast提示

創(chuàng)建自定義彈窗掛載在body上

1.創(chuàng)建方法

// toast.js
import Vue from "vue";
// 創(chuàng)建函數(shù)接收要?jiǎng)?chuàng)建組件定義
function create(Component, props) {
// 創(chuàng)建一個(gè)Vue新實(shí)例
  const vm = new Vue({
    render(h) {
    // render函數(shù)將傳入組件配置對(duì)象轉(zhuǎn)換為虛擬dom
    //   console.log(h(Component, { props }));
      return h(Component, { props });
    }
  }).$mount(); //執(zhí)行掛載函數(shù)扫俺,但未指定掛載目標(biāo),表示只執(zhí)行初始化工作
// 將生成dom元素追加至body
  document.body.appendChild(vm.$el);
// 給組件實(shí)例添加銷毀方法
  const comp = vm.$children[0];
  comp.remove = () => {
    document.body.removeChild(vm.$el);
    vm.$destroy();
  };
  return comp;
}
// 暴露調(diào)用接口
export default create;

2.組件

//notice.vue
<template>
  <div class="box" v-if="isShow">
    <h3>{{title}}</h3>
    <p class="box-content">{{message}}</p>
  </div>
</template>
<script>
  export default {
    props: {
      title: {
        type: String,
        default: ""
      },
      message: {
        type: String,
        default: ""
      },
      duration: {
        type: Number,
        default: 1000
      }
    },
    data() {
      return {
        isShow: false
      };
    },
    methods: {
      show() {
        this.isShow = true;
        setTimeout(this.hide, this.duration);
      },
      hide() {
        this.isShow = false;
        this.remove();
      }
    }
  };
</script>
<style>
  .box {
    position: fixed;
    width: 100%;
    top: 16px;
    left: 0;
    text-align: center;
    pointer-events: none;
    background-color: #fff;
    border: grey 3px solid;
    box-sizing: border-box;
  }
  .box-content {
    width: 200px;
    margin: 10px auto;
    font-size: 14px;
    padding: 8px 16px;
    background: #fff;
    border-radius: 3px;
    margin-bottom: 8px;
  }
</style>

3.然后在需要的時(shí)候調(diào)用

import toast from '@/util/createToast'
import Notice from '@/components/notice'

toast (Notice, {
          title: "提示",
          message: flag ? "請(qǐng)求登錄!" : "校驗(yàn)失敗!",
          duration: 1000
        }).show()
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市漠吻,隨后出現(xiàn)的幾起案子们何,更是在濱河造成了極大的恐慌告私,老刑警劉巖巷蚪,帶你破解...
    沈念sama閱讀 219,039評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件居灯,死亡現(xiàn)場(chǎng)離奇詭異穗熬,居然都是意外死亡镀迂,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門唤蔗,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)探遵,“玉大人,你說(shuō)我怎么就攤上這事妓柜∠浼荆” “怎么了?”我有些...
    開封第一講書人閱讀 165,417評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵棍掐,是天一觀的道長(zhǎng)藏雏。 經(jīng)常有香客問(wèn)我,道長(zhǎng)作煌,這世上最難降的妖魔是什么掘殴? 我笑而不...
    開封第一講書人閱讀 58,868評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮粟誓,結(jié)果婚禮上奏寨,老公的妹妹穿的比我還像新娘。我一直安慰自己鹰服,他們只是感情好病瞳,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,892評(píng)論 6 392
  • 文/花漫 我一把揭開白布揽咕。 她就那樣靜靜地躺著,像睡著了一般套菜。 火紅的嫁衣襯著肌膚如雪亲善。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,692評(píng)論 1 305
  • 那天逗柴,我揣著相機(jī)與錄音蛹头,去河邊找鬼。 笑死嚎于,一個(gè)胖子當(dāng)著我的面吹牛掘而,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播于购,決...
    沈念sama閱讀 40,416評(píng)論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼袍睡,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了肋僧?” 一聲冷哼從身側(cè)響起斑胜,我...
    開封第一講書人閱讀 39,326評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎嫌吠,沒想到半個(gè)月后止潘,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,782評(píng)論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡辫诅,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,957評(píng)論 3 337
  • 正文 我和宋清朗相戀三年凭戴,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片炕矮。...
    茶點(diǎn)故事閱讀 40,102評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡么夫,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出肤视,到底是詐尸還是另有隱情档痪,我是刑警寧澤,帶...
    沈念sama閱讀 35,790評(píng)論 5 346
  • 正文 年R本政府宣布邢滑,位于F島的核電站腐螟,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏困后。R本人自食惡果不足惜乐纸,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,442評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望摇予。 院中可真熱鬧锯仪,春花似錦、人聲如沸趾盐。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)救鲤。三九已至久窟,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間本缠,已是汗流浹背斥扛。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留丹锹,地道東北人稀颁。 一個(gè)月前我還...
    沈念sama閱讀 48,332評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像楣黍,于是被迫代替她去往敵國(guó)和親匾灶。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,044評(píng)論 2 355

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

  • 經(jīng)常的租漂,業(yè)務(wù)中需要用到一些全局的組件阶女,類似Toast、彈窗等哩治,如果我們?cè)诿總€(gè)頁(yè)面都單獨(dú)的去引入的話秃踩,就會(huì)比較麻煩,...
    陳成熟閱讀 519評(píng)論 0 5
  • 這個(gè)實(shí)現(xiàn)過(guò)程呢业筏,會(huì)涉及render憔杨、Vue.extend、Vue插件等知識(shí) 分析需求 彈窗的特點(diǎn): 位置不相對(duì)某個(gè)...
    miao8862閱讀 721評(píng)論 0 5
  • 當(dāng)你第一次接觸vue的時(shí)候蒜胖,一定會(huì)使用到其中幾個(gè)指令消别,比如:v-if、v-for翠勉、v-bind...這些都是vue...
    風(fēng)信子_c9da閱讀 1,897評(píng)論 1 0
  • 好吧妖啥,突然發(fā)現(xiàn)學(xué)不完了,一下子对碌,那就分開吧荆虱,由于時(shí)間太久,直接重新大致復(fù)習(xí)了一下 微信小程序自定義組件微信小程序支...
    小小小8021閱讀 2,606評(píng)論 0 9
  • 自定義ElementUI中form表單組件 如何去自定義組件呢朽们?首先根據(jù)如何去使用組件來(lái)構(gòu)建組件怀读,然后去實(shí)現(xiàn)每一個(gè)...
    kjkongjun閱讀 3,164評(píng)論 0 0