最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue3封裝側(cè)導(dǎo)航文字骨架效果組件

 更新時(shí)間:2021年09月28日 09:00:28   作者:新時(shí)代農(nóng)民工Top  
這篇文章主要為大家詳細(xì)介紹了vue3封裝側(cè)導(dǎo)航文字骨架效果組件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

vue3 項(xiàng)目封裝側(cè)導(dǎo)航文字骨架效果組件-全局封裝,供大家參考,具體內(nèi)容如下

目的

當(dāng)顯示頁面的時(shí)候,有些數(shù)據(jù)是需要從后臺(tái)加載,網(wǎng)絡(luò)不好的時(shí)候可能需要等待,那就可以做一個(gè)骨架層閃動(dòng)動(dòng)畫,增加用戶體驗(yàn)

大致步驟

- 需要一個(gè)組件,做占位使用。這個(gè)占位組件有個(gè)專業(yè)術(shù)語:骨架屏組件。
      ·暴露一些屬性:高,寬,背景,是否有閃動(dòng)畫。

- 這是一個(gè)公用組件,需要全局注冊,將來這樣的組件建議再vue插件中定義。

- 使用組件完成左側(cè)分類骨架效果。

落地代碼

一、封裝組件

<template>
  <div class="skeleton" :style="{width,height}" :class="{shan:animated}">
    <!-- 1 盒子-->
    <div class="block" :style="{backgroundColor:bg}"></div>
    <!-- 2 閃效果 xtx-skeleton 偽元素 --->
  </div>
</template>
<script>
export default {
  name: 'Skeleton',
  // 使用的時(shí)候需要?jiǎng)討B(tài)設(shè)置 高度,寬度,背景顏色,是否閃下
  props: {
    bg: {
      type: String,
      default: '#efefef'
    },
    width: {
      type: String,
      default: '100px'
    },
    height: {
      type: String,
      default: '100px'
    },
    animated: {
      type: Boolean,
      default: false
    }
  }
}
</script>
<style scoped lang="less">
.skeleton {
  display: inline-block;
  position: relative;
  overflow: hidden;
  vertical-align: middle;
  .block {
    width: 100%;
    height: 100%;
    border-radius: 2px;
  }
}
.shan {
  &::after {
    content: "";
    position: absolute;
    animation: shan 1.5s ease 0s infinite;
    top: 0;
    width: 50%;
    height: 100%;
    background: linear-gradient(
      to left,
      rgba(255, 255, 255, 0) 0,
      rgba(255, 255, 255, 0.3) 50%,
      rgba(255, 255, 255, 0) 100%
    );
    transform: skewX(-45deg);
  }
}
@keyframes shan {
  0% {
    left: -100%;
  }
  100% {
    left: 120%;
  }
}
</style>

二、封裝插件

// 擴(kuò)展vue原有的功能:全局組件,自定義指令,掛載原型方法,注意:沒有全局過濾器。
// 這就是插件
// vue2.0插件寫法要素:導(dǎo)出一個(gè)對象,有install函數(shù),默認(rèn)傳入了Vue構(gòu)造函數(shù),Vue基礎(chǔ)之上擴(kuò)展
// vue3.0插件寫法要素:導(dǎo)出一個(gè)對象,有install函數(shù),默認(rèn)傳入了app應(yīng)用實(shí)例,app基礎(chǔ)之上擴(kuò)展

import Skeleton from './skeleton.vue'

export default {
  install (app) {
    // 在app上進(jìn)行擴(kuò)展,app提供 component directive 函數(shù)
    // 如果要掛載原型 app.config.globalProperties 方式
    app.component(Skeleton.name, Skeleton)
  }
}

三、在入口文件 main.js 中全局注冊

import { createApp } from 'vue'
import App from './App.vue'
import MyUI from './components/library'

// 插件的使用,在main.js使用app.use(插件)
createApp(App).use(store).use(router).use(MyUI).mount('#app')

四、在項(xiàng)目組件中使用組件

在使用組件的時(shí)候,與想要骨架效果的地方進(jìn)行互斥 v-if 與 v-else

封裝組件的時(shí)候,在內(nèi)部通過自定義屬性 props 接收四個(gè)參數(shù) width、height、bg、animated,在使用組建的時(shí)候根據(jù)場景需求傳入相應(yīng)的值即可

代碼如下

<span v-else>
  <Skeleton width="60px" height="18px" style="margin-right:5px" bg="rgba(255,255,255,0.2)" :animated="true" />
  <Skeleton width="50px" height="18px" bg="rgba(255,255,255,0.2)" :animated="true" />
</span>

效果

總結(jié)

1、封裝骨架屏單元格組件
2、配置Vue插件并且配置全局組件
3、入口文件導(dǎo)入并配置UI組件庫這個(gè)插件
4、分類列表中使用骨架屏組件進(jìn)行占位

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Vue雙向綁定詳解

    Vue雙向綁定詳解

    這篇文章主要介紹了Vue 實(shí)現(xiàn)雙向綁定的四種方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧,希望能夠給你帶來幫助
    2021-11-11
  • Vue項(xiàng)目中props傳值時(shí)子組件檢測不到的問題及解決

    Vue項(xiàng)目中props傳值時(shí)子組件檢測不到的問題及解決

    這篇文章主要介紹了Vue項(xiàng)目中props傳值時(shí)子組件檢測不到的問題及解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • 實(shí)現(xiàn)vue圖片縮放方式-拖拽組件

    實(shí)現(xiàn)vue圖片縮放方式-拖拽組件

    這篇文章主要介紹了實(shí)現(xiàn)vue圖片縮放方式-拖拽組件,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • vue.js?diff算法原理詳細(xì)解析

    vue.js?diff算法原理詳細(xì)解析

    這篇文章主要介紹了vue.js?diff算法原理詳細(xì)解析,diff算法可以看作是一種對比算法,對比的對象是新舊虛擬Dom。顧名思義,diff算法可以找到新舊虛擬Dom之間的差異,但diff算法中其實(shí)并不是只有對比虛擬Dom,還有根據(jù)對比后的結(jié)果更新真實(shí)Dom
    2022-06-06
  • vue2更改data里的變量不生效時(shí),深層更改data里的變量問題

    vue2更改data里的變量不生效時(shí),深層更改data里的變量問題

    這篇文章主要介紹了vue2更改data里的變量不生效時(shí),深層更改data里的變量問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • Vue實(shí)現(xiàn)數(shù)據(jù)請求攔截

    Vue實(shí)現(xiàn)數(shù)據(jù)請求攔截

    這篇文章主要為大家詳細(xì)介紹了Vue實(shí)現(xiàn)數(shù)據(jù)請求攔截,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • Vue2.x與Vue3.x中路由鉤子的區(qū)別詳解

    Vue2.x與Vue3.x中路由鉤子的區(qū)別詳解

    這篇文章主要介紹了Vue2.x與Vue3.x中路由鉤子的區(qū)別,分別介紹了路由鉤子的分類,路由配置守衛(wèi)鉤子以及組件內(nèi)守衛(wèi)鉤子等有需要的朋友可以借鑒參考下
    2021-09-09
  • vue3手動(dòng)封裝彈出框組件message的方法

    vue3手動(dòng)封裝彈出框組件message的方法

    這篇文章主要為大家詳細(xì)介紹了vue3手動(dòng)封裝彈出框組件message的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • Vue3中的Teleport與Portal的區(qū)別分析

    Vue3中的Teleport與Portal的區(qū)別分析

    在現(xiàn)代前端開發(fā)中,特別是使用Vue.js進(jìn)行構(gòu)建時(shí),開發(fā)者常常面臨著如何更有效地管理DOM結(jié)構(gòu)與組件之間的關(guān)系的問題,Vue 3引入了兩個(gè)頗具魅力的概念——Teleport和Portal,本文將深入探討這兩者的不同之處,需要的朋友可以參考下
    2025-01-01
  • ant?菜單組件報(bào)錯(cuò)Cannot?read?property?‘isRootMenu‘?of?undefined

    ant?菜單組件報(bào)錯(cuò)Cannot?read?property?‘isRootMenu‘?of?undefin

    這篇文章主要介紹了ant?菜單組件報(bào)錯(cuò)Cannot?read?property?‘isRootMenu‘?of?undefined解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08

最新評論

南靖县| 陕西省| 许昌县| 漳浦县| 咸宁市| 宁河县| 南开区| 张北县| 山阳县| 扶沟县| 平湖市| 抚松县| 舞钢市| 鄂托克旗| 通山县| 奎屯市| 荔浦县| 个旧市| 邛崃市| 曲阜市| 贵溪市| 长丰县| 吴桥县| 舞钢市| 灯塔市| 从化市| 福州市| 榕江县| 庄河市| 丰镇市| 达日县| 金沙县| 台安县| 新郑市| 黑龙江省| 城口县| 峨边| 额尔古纳市| 招远市| 聂拉木县| 牙克石市|