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

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

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

瀏覽:288日期: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| 亚洲精品国产嫩草在线观看| 成人羞羞在线观看网站| 特黄特色欧美大片| 黄色日韩在线| 免费在线观看成人| 亚洲欧美网站在线观看| 色狠狠一区二区三区| 日韩av中文在线观看| 欧美天堂一区二区| 久久精品国产999大香线蕉| 粉嫩av一区二区三区四区五区 | 国产66精品| 久久国产直播| 日韩中文字幕区一区有砖一区 | 亚洲一区二区日韩| 国产欧美日韩一区二区三区四区| 久久亚洲资源中文字| 久久视频精品| 综合五月婷婷| 久久爱www.| 久久精品亚洲人成影院 | 午夜av一区| 欧美三区不卡| 97精品在线| 亚洲精品1区2区| 91大神在线观看线路一区| 精品国产亚洲日本| 99国产精品私拍| 国产日产精品_国产精品毛片| 国产h片在线观看| 午夜亚洲福利在线老司机| 国产毛片精品| 亚洲一级影院| 国产欧美自拍| 久久一区二区三区喷水| 综合一区二区三区| 九九九精品视频| 麻豆91精品| 精品三级av| 亚洲三级网址| 久久久影院免费| 国产精品对白久久久久粗| 在线成人直播| 麻豆91精品视频| 亚洲国产一区二区三区在线播放 | 亚洲视频二区| 精品国产第一福利网站| 免费黄网站欧美| 四季av一区二区凹凸精品| 亚洲精品中文字幕乱码| 久久精品一区二区三区中文字幕| 日韩午夜一区| 福利片在线一区二区| 亚洲深深色噜噜狠狠爱网站| 日韩一区亚洲二区| 久久精品超碰| 亚洲欧美成人综合| 日韩在线一二三区| 日韩精品看片| 精品美女在线视频| 日本一区中文字幕| 激情五月综合网| 国产一区二区三区黄网站| 日韩在线观看不卡| 国产精品最新| 亚洲尤物av| 欧美日韩激情| 中文在线免费视频| 欧美激情福利| 91精品尤物| 免费人成精品欧美精品| 久久久久美女| 国产精品成久久久久| 国产亚洲一区| 中文字幕日韩欧美精品高清在线| 国产一区日韩欧美| 亚洲天堂资源| 精品视频久久| 欧美a一区二区| 偷拍亚洲精品| 麻豆精品91| 亚洲电影在线一区二区三区| 日韩在线精品| 国产精品成人a在线观看| 国产精品一区二区av交换| 亚洲精品在线国产| 香蕉精品999视频一区二区| 久久精品国产99久久| 91精品韩国| 中文字幕在线看片| 国产一区二区三区日韩精品| 国产午夜精品一区在线观看| 一级成人国产| 亚洲婷婷丁香| 国产农村妇女精品一区二区| 国产在线不卡| 99热国内精品| 日韩精品水蜜桃| 久久久久免费av| 91精品国产91久久久久久黑人| 国产精品毛片久久| 91青青国产在线观看精品| 日本精品黄色| 精品久久电影| 欧美好骚综合网| 日韩黄色大片网站| 成人日韩在线| 欧美日韩在线网站| 国产综合婷婷| 亚洲高清成人| 久久高清免费| 国产一在线精品一区在线观看| 久久亚洲精品中文字幕蜜潮电影| 久久精品不卡| 国产亚洲毛片| 蜜臀久久99精品久久久画质超高清| 蜜桃成人av| 国产精品毛片在线看| 美女被久久久| 日韩一区二区三免费高清在线观看| 日韩精品欧美成人高清一区二区| 欧美亚洲专区| 精品久久久网| 色爱综合av| 午夜精品亚洲| 日韩精品一二区| 日韩精品a在线观看91| 欧美日本三区| 精品高清久久| 久久国产影院| 中文精品电影| 国产精品久久久久久av公交车| 精品国产乱码久久久久久樱花| 欧美一级鲁丝片| 91久久久久| 91精品国产一区二区在线观看 | 日韩一区二区三区免费播放| 久久久9色精品国产一区二区三区| 五月精品视频| 日精品一区二区三区| 国产欧美一区二区色老头| 精品久久精品| 激情五月综合网| 日本欧美一区二区在线观看| 精品三区视频| 日韩午夜免费| 国产精品久久国产愉拍| 色综合www| 日韩精品视频一区二区三区| 精品国产精品久久一区免费式| 欧美91福利在线观看| 日韩欧美2区| 日本不卡免费高清视频在线| 黑丝美女一区二区| 日韩精品成人在线观看| 福利视频一区| 一区二区国产精品| 日本一区二区免费高清| 好吊日精品视频| 国产日韩欧美三级| 免费黄色成人| 国产精品亲子伦av一区二区三区| 久久精品动漫| 欧美在线91| 久久精品一区二区不卡| 日本aⅴ亚洲精品中文乱码| 丁香六月综合| 日本91福利区| 深夜福利视频一区二区| 丝瓜av网站精品一区二区| 国产精品s色| 国产精品毛片| 日本激情一区| 日韩一区二区三区免费视频| 国产亚洲一区二区手机在线观看 | 理论片午夜视频在线观看| 亚洲一区二区三区四区电影| 精品72久久久久中文字幕| 午夜在线视频观看日韩17c| 久久只有精品| 蜜臀av一区二区三区| 国产传媒在线| 91国内精品| 性色av一区二区怡红| а√天堂中文在线资源8| 日韩精品中文字幕一区二区| 99视频精品全国免费|