日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

封裝一個vue中也可使用的uniapp的全局彈窗組件(任何頁面都可以彈出)

瀏覽:285日期:2022-06-01 14:22:16
目錄
  • 效果圖:
  • 場景:
  • 思路:
  • 第一步:
  • 第二步:
  • 第三部:使用
  • 總結

效果圖:

場景:

當你對接websocket時,或者輪詢也好,你需要獲取到最新的信息,并且在任何頁面彈出一個組件進行后續操作

思路:

1、先封裝好要彈出的公共組件

2、向vue原型上掛載全局方法,拿到組件真實dom,從而對組件進行顯隱操作

第一步:

創建一個公共組件,以下是組件全部的結構及樣式,你需要把html中的兩個image標簽的路徑換掉或者直接注釋掉也行,html 和 css就不做解釋了

invite.vue

<template>  <div>    <view>      <image src="/static/invite-logo.png"></image>      <image src="/static/close.png" v-on:click="$closeInvite"></image>      <view>邀請函</view>      <view>您好!您的朋友xxx邀請您對<text>“為什么小朋友到了一定年齡需要打疫苗?”</text>進行專家答疑,您是否接受?</view>      <view><view>邀請專家</view>      </view>    </view>       </div></template> <script> export default {  name: "invite",   props: {    _specia: String  },   data() {    return {}  },   mounted() {    console.log("this.specia", this._specia);  }}</script> <style scoped lang="scss">.invite-box {  position: fixed;  top: 0;  left: 0;  width: 100vw;  height: 100vh;  background: rgba(0,0,0,0.5);  z-index: 9999;   .center-box {    position: absolute;    top: 50%;    left: 50%;    transform: translate(-50%, -50%);    width: 622rpx;    padding: 32rpx;    border-radius: 16rpx;    opacity: 1;    background: rgba(255,255,255,1);     .logo {      position: absolute;      top: -48rpx;      left: 50%;      transform: translateX(-50%);      width: 136rpx;      height: 144rpx;    }    .close {      position: absolute;      top: 24rpx;      right: 24rpx;      width: 48rpx;      height: 48rpx;    }        .title {      margin-top: 66rpx;      text-align: center;      color: rgba(0,0,0,1);      font-size: 36rpx;      font-weight: 500;      font-family: "PingFang SC";      letter-spacing: 0.6rpx;    }     .content {      margin: 40rpx 0;      font-size: 26rpx;      font-family: "PingFang SC";      letter-spacing: 0.6rpx;      color: #343434;      text {font-size: 32rpx;letter-spacing: 0.6rpx;color: rgba(69,108,255,1);      }    }     .btn-group {      display: flex;      justify-content: center;      padding: 0 16rpx;      .invite-specia {width: 526rpx;height: 88rpx;line-height: 88rpx;border-radius: 16rpx;text-align: center;background: linear-gradient(-46.8deg, rgba(63,101,255,1) 0%, rgba(97,141,255,1) 100%);color: #fff;      }    }  }}</style>

第二步:

注冊一個全局函數,使用 Vue.prototype,首先創建一個js文件來存放你的全局方法,之后在main.js中引入掛載

以下代碼中幾個關鍵點:

1、install,參數可以拿到Vue函數,等價于 main.js 中 import 進來的 Vue

2、Vue.extend(Invite),這里可以看到 Invite 是我導入的組件實例對象,該方法傳入組件實例對象可以返回給你該組件的實例構造器,方便我們后續多次構建并操作該組件

3、instance._props._specia = params,這里只是向新構建的組件內傳遞一個props參數

4、instance.vm = instance.$mount(),掛載模板,生成真實dom,作用和$el一致

5、invite-box是組件最外層盒子的類名

6、setTimeout,因為要添加到最后,需要異步添加

invite.js

import Invite from "../components/invite.vue" export default {  install(Vue) {    const Profile = Vue.extend(Invite)        // 彈出邀請    Vue.prototype.$openInvite = function(params) {      const instance = new Profile()      instance._props._specia = params      instance.vm = instance.$mount()      const InviteEle = document.body.lastElementChild      if(InviteEle.className === "invite-box") return      setTimeout(() => document.body.appendChild(instance.vm.$el))      return instance    }     // 關閉邀請    Vue.prototype.$closeInvite = function() {      const instance = new Profile()      instance.vm = instance.$mount()      const InviteEle = document.body.lastElementChild      if(InviteEle.className !== "invite-box") return      document.body.removeChild(InviteEle)      return instance    }  }}

main.js

// 導入invite.jsimport invite from "./utils/invite"http:// 安裝插件Vue.use(invite)

第三部:使用

在你任何組件內調用 this.$openInvite() 即可彈出組件,調用 this.$closeInvite()即可關閉組件

以上就是整個過程,是不是很好用呢

總結

到此這篇關于封裝一個vue中也可使用的uniapp的全局彈窗組件的文章就介紹到這了,更多相關uniapp全局彈窗組件封裝內容請搜索以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持!

標簽: JavaScript
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
精品日韩在线| 日本欧洲一区二区| 国产亚洲一区二区三区不卡| 黄毛片在线观看| 国产无遮挡裸体免费久久| 精品一区二区三区的国产在线观看 | 久久久久免费| 亚欧洲精品视频在线观看| 国产精品av一区二区| 黑丝美女一区二区| 久久精品国内一区二区三区水蜜桃| 精品三区视频| 日韩在线中文| 日韩免费一区| 中文在线资源| 亚洲手机视频| 国精品一区二区三区| 秋霞国产精品| 国产亚洲午夜| 亚洲二区精品| 色婷婷色综合| 欧美日韩水蜜桃| 蜜桃成人精品| 久久精品99久久久| 久久国产三级| 9久re热视频在线精品| 久久国产主播| 日韩中文字幕区一区有砖一区 | 日韩av一区二区三区四区| 只有精品亚洲| 精品深夜福利视频| 蜜臀国产一区| 日韩福利视频一区| 不卡一二三区| 国产精品试看| 国产一区二区精品久| 一二三区精品| 免费观看不卡av| 婷婷精品视频| 精品三级在线观看视频| 精品久久97| 国产婷婷精品| 日本亚洲最大的色成网站www | 国产精品亚洲产品| 欧美a级一区| 91大神在线观看线路一区| 国产精品99在线观看| 日本一区二区免费高清| 老鸭窝毛片一区二区三区| 黄色网一区二区| 美女精品一区| 久久午夜影院| 欧美不卡视频| 亚洲一二av| 国产精品原创| 午夜一级久久| 热久久久久久| 中文字幕人成乱码在线观看 | 国产精品一站二站| 国产精品99久久免费观看| 国内亚洲精品| 亚洲不卡视频| 久久毛片亚洲| 国产一卡不卡| 久久久久久久久久久9不雅视频| 亚洲免费播放| 日韩成人a**站| 亚洲一区二区动漫| 国产精品白浆| 蜜臀久久久久久久| 国内在线观看一区二区三区| 99久久亚洲精品| 国产精品红桃| 尤物tv在线精品| 亚洲一区二区三区高清不卡| 久久中文欧美| 99国产成+人+综合+亚洲欧美| 久久99青青| 91超碰国产精品| 国产剧情一区| 四虎精品一区二区免费| 97人人精品| 日韩久久一区| 日韩中文字幕1| 国模大尺度视频一区二区| 美女国产一区二区三区| 久久久久网站| 西西人体一区二区| 最新国产精品视频| 青青青国产精品| 精品少妇av| 亚洲一区有码| 精品国产乱码久久久久久樱花 | 国产国产精品| 亚洲精品日韩久久| 亚洲久久在线| 国产精品久久久久久久久久久久久久久 | 日本中文字幕视频一区| 日韩综合一区| 亚洲精品人人| 日韩网站中文字幕| 国产精品毛片一区二区在线看| 国产精品普通话对白| 国产91在线播放精品| 欧美日韩水蜜桃| 国产精品宾馆| 久久中文视频| 国产精品原创| 亚洲bt欧美bt精品777| 国产午夜精品一区在线观看| 亚洲青青久久| 国产精品99久久免费| 极品av在线| 精品网站999| 亚洲黄色网址| 精品国产美女a久久9999| 免费视频最近日韩| 国产综合欧美| 尤物精品在线| 三上悠亚国产精品一区二区三区| 国产欧美88| 国产精品亚洲片在线播放| 日韩一区精品字幕| 国精品一区二区| 麻豆网站免费在线观看| 91九色精品| 日韩免费视频| 高清久久精品| 青青青免费在线视频| 国产精品流白浆在线观看| 日韩激情中文字幕| 国产精品久久久久久模特| 午夜电影一区| 男人的天堂久久精品| 亚洲精品在线国产| 亚洲一区免费| 亚洲国产成人精品女人| 手机精品视频在线观看| 婷婷中文字幕一区| 亚洲不卡av不卡一区二区| 午夜久久中文| 97精品国产福利一区二区三区| 麻豆成人91精品二区三区| 日韩av成人高清| 国产精品成人自拍| 国产精品视频一区视频二区| 久久精品xxxxx| 精品国产亚洲一区二区三区大结局| 日韩动漫一区| 日本亚洲视频| 欧美国产免费| 老司机精品视频网| 国产探花一区| 精品91福利视频| 91国内精品| 国产日韩一区二区三区在线播放| 国产精品久久久久久久久久妞妞| 国产精品15p| 久久最新视频| 精品中文字幕一区二区三区av| 国产精品天堂蜜av在线播放| 日韩精品一二区| 亚洲一区亚洲| 亚洲天堂黄色| 国产一区亚洲| 国产91一区| 久久男人天堂| 免费看黄色91| 日本欧美久久久久免费播放网| 石原莉奈一区二区三区在线观看| 香蕉久久精品| 欧美日韩亚洲一区三区| 91精品99| 欧美日韩1区| 欧美aa在线视频| 国内精品福利| 日韩和欧美一区二区三区| 精品九九久久| 香蕉久久国产| 成人午夜毛片| 午夜宅男久久久| 精品国产麻豆| 蜜桃av一区二区在线观看| 欧美激情视频一区二区三区在线播放| 欧产日产国产精品视频| 日韩视频中文| 国产手机视频一区二区| 日韩在线观看中文字幕| 亚洲另类视频| 久久久成人网| 九九99久久精品在免费线bt| 国产精品伊人| 日韩av在线播放网址| 欧美www视频在线观看| 欧美丝袜一区| 亚洲精品在线a| 日韩国产一区二区三区| 中文一区一区三区免费在线观 | 天堂成人免费av电影一区| 日韩二区在线观看|