<acronym id="indot"><dfn id="indot"></dfn></acronym>
<span id="indot"></span>

<bdo id="indot"><meter id="indot"></meter></bdo>
<label id="indot"><samp id="indot"></samp></label>
<label id="indot"><xmp id="indot">
  • <span id="indot"><table id="indot"></table></span>
    <center id="indot"><optgroup id="indot"></optgroup></center>
  • <bdo id="indot"><meter id="indot"></meter></bdo>
      當前位置:首頁 > javascript > vue > 正文內容

      vue3 插件開發

      hxing6413年前 (2022-10-31)vue2933

      插件是向vue添加全局功能。你如果是一個對象需要提供install方法,你如果是function就直接當install 方法去使用。

      寫一個loading組件供全局使用:

      1)目錄結構

      image.png

      index.ts文件內容:

      import { createVNode, render, App } from 'vue'
      import Loading from './index.vue'
      export default {
          // 自定義組件需要install 函數
          install(app:App) {
              // 先轉成虛擬dom
              const vNode = createVNode(Loading)
              render(vNode, document.body)
              // vnode中通過exposed屬性獲取組件導出的方法
              app.config.globalProperties.$loading = {
                  show: vNode.component?.exposed?.show,
                  hide: vNode.component?.exposed?.hide
              }
              console.log(vNode);
              
          }
      }

      index.vue文件內容

      <template>
        <div v-if="showLoading">
          loading...
        </div>
      </template>
      <script setup>
      let showLoading = ref(false)
      const show = () => showLoading.value = true
      const hide = () => showLoading.value = false
          defineExpose({
              show,
              hide
          })
      </script>
      <style scoped>
          .loading {
              position: absolute;
              left: 0;
              top: 0;
              width: 100vw;
              height: 100vh;
              background-color: rgba($color: #000000, $alpha: .8);
              color: #fff;
          }
      </style>

      2) 在main.ts中引入

          import loading from './components/loading'  // 組件路徑
          //編寫ts loading 聲明文件放置報錯 和 智能提示
          type LoadingTypes = {
              show: () => void,
              hide: () => void
          }
          declare module '@vue/runtime-core' {
              export interface ComponentCustomProperties {
                  $loading: LoadingTypes
              }
          }
          app.use(loading)

      3) 使用

          import { getCurrentInstance} from 'vue'
          const  instance = getCurrentInstance()  
          instance?.proxy?.$Loading.show()
          setTimeout(()=>{
            instance?.proxy?.$Loading.hide()
          },5000)


      掃描二維碼推送至手機訪問。

      版權聲明:本文由星星博客發布,如需轉載請注明出處。

      本文鏈接:http://www.7811333.com/?id=406

      分享給朋友:

      “vue3 插件開發” 的相關文章

      uniapp webview設置不全屏,設置自定義導航欄

      使用webview時默認填充整個屏幕的,這時候我們加個自己的導航欄被遮住出不來,所以我們需要自定義webview的高度,才能顯示出導航欄,傳入導航欄高度(單位px),調用下面方法即可// 自定義webview高度 function setWebview(offset) ...

      vue 路由 vue-router

      vue 路由 vue-router

      前面的話  在Web開發中,路由是指根據URL分配到對應的處理程序。對于大多數單頁面應用,都推薦使用官方支持的vue-router。Vue-router通過管理URL,實現URL和組件的對應,以及通過URL進行組件之間的切換。本文將詳細介紹Vue路由vue-router 安裝  在使用vu...

      【Vue】深入探究Vue生命周期

      Vue.js 是一款流行的前端框架,廣泛應用于各種 Web 應用開發中。在 Vue.js 中,每個組件都有一個生命周期,它包括一系列鉤子函數,用于在特定階段執行特定的操作。本文將詳細介紹 Vue 組件生命周期,并講述它們的實際應用。生命周期鉤子函數Vue 組件的生命周期分成了 8 個不同的階段,每個...

      深入探索Vue自定義過濾器

      Vue.js是一種流行的JavaScript框架,提供了很多有用的功能來構建交互式的Web應用程序。其中一個非常有用且經常被忽視的功能是自定義過濾器。通過使用自定義過濾器,我們可以在Vue應用程序中輕松地轉換、格式化和處理數據。本文將深入探索Vue自定義過濾器的使用方法和實際應用。一、什么是Vue自...

      uniapp 中 ScrollView 組件上拉分頁怎么不滾動到最頂部

      實現類似微信聊天頁面,上拉加載更多歷史聊天記錄,每次上拉到頂部,界面自動會滾動到最頂部,我希望ScrollView不要滾動到最頂部,每次就停留在當前位置1,綁定scroll-view中scroll-into-view屬性<scroll-view class="scroll-...

      Vue中的父子組件通訊及使用sync同步父子組件數據

      在Vue.js中,組件通訊是一個非常重要的主題。特別是在處理父子組件之間的通訊時,我們需要了解不同的方式來傳遞數據和響應事件。本文將介紹Vue中父子組件通訊的幾種方式,并重點討論使用sync屬性來實現父子組件數據的雙向綁定。父子組件通訊 在Vue中,父組件可以通過prop向子組件傳遞數據,而子組件則...

      發表評論

      訪客

      ◎歡迎參與討論,請在這里發表您的看法和觀點。
      主站蜘蛛池模板: 国产成人综合精品一区| 99久久国产综合精品麻豆| 亚洲人成伊人成综合网久久| 久久婷婷五月综合色精品| 综合久久国产九一剧情麻豆| 亚洲免费综合色在线视频| 中文字幕亚洲综合久久菠萝蜜 | 狠狠色丁香久久婷婷综合图片| 天天综合天天综合色在线| 国产一级a爱做综合| 综合五月激情五月开心婷婷| 色欲色香天天天综合网WWW| 国产综合视频在线观看一区| 开心五月激情综合婷婷| 久久综合丁香激情久久| 色综合久久天天综合绕观看| 伊人久久五月丁香综合中文亚洲| 国产综合无码一区二区三区| 国产综合色香蕉精品五月婷| 狠狠色丁香婷婷综合尤物| 亚洲综合精品网站在线观看| 亚洲欧洲国产成人综合在线观看 | 一本久久知道综合久久| 国精产品自偷自偷综合下载| 亚洲妓女综合网99| 久久综合香蕉国产蜜臀AV| 久久综合九色综合97_久久久| 久久综合视频网站| 狠狠综合久久综合中文88| 伊人久久久大香线蕉综合直播 | 精品综合久久久久久88小说| 色天使久久综合给合久久97色| 狠狠色综合久久婷婷| 欧洲 亚洲 国产图片综合| 色婷婷天天综合在线| 久久乐国产综合亚洲精品| 色噜噜狠狠色综合中文字幕| 亚洲综合精品网站| 久久99精品综合国产首页| 亚洲综合色区中文字幕| 亚洲综合在线一区二区三区|