<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    在 Vue 中更優雅的封裝第三方組件

    VSole2022-08-09 09:58:24

    一、需求場景描述

    實際開發的時候,為了減少重復造輪子,提高工作效率,節省開發時間成本, 免不了會使用ui組件庫,比如在web前端很受歡迎的element-ui。但有的時候,我們需要在原組件的基礎上做些改造,比如一個image組件, 我們需要統一在圖片加載失敗的時候展示的特定圖,每次使用組件都加一遍, 麻煩耗時,關鍵是維護成本高,當需要更新這個加載出錯的圖片時, 得再次一個個去找到使用該組件的地方修改。

    再例如自定義分頁組件也很常見,組件的樣式,默認支持的每頁數目, 封裝之后再用,在可維護性和開發效率上都很有好處。

    然而也不至于從0開始寫一個分頁組件,在原有基礎上封裝就好, 那么如何快速優雅的封裝一個第三方組件庫的組件呢?v-bind=attrsv?on=attrsv-on=attrsv?on=listeners=$listeners,會給我們帶來驚喜。它們可以使得封裝后的組件, “繼承”原組件的幾乎所有v-bind屬性和v-on事件,且用法和作用與在原組件一樣。

    封裝el-imagecustom-image組件,所有使用custom-image展示圖片的地方, 圖片加載過程中都會統一展示“加載中...”的提示,且當加載出錯時,會展示統一的默認圖。下面是一個custom-image組件加載過程以及加載出錯的效果。

    二、關鍵技術點介紹

    1.v-bind=$attrs

    v-bind=$attrs的妙用是在創建更高級別的組件,在封裝第三方組件時,

    可以自動將在父作用域中使用的v-bind的屬性自動綁定,

    并向下傳入被封裝的使用了v-bind=$attrs的組件。

    一段摘自vue官網的介紹

    包含了父作用域中不作為prop被識別 (且獲取) 的attribute, 綁定 (classstyle除外)。當一個組件沒有聲明任何prop時, 這里會包含所有父作用域的綁定 (classstyle除外), 并且可以通過v-bind=$attrs傳入內部組件——在創建高級別的組件時非常有用。

    例如我們封裝的custom-Image組件,使用了v-bind=$attrs之后,我們在custom-Image組件中,也擁有了el-image的幾乎所有屬性, 而且其作用效果和用法,是和我們使用el-image是一樣的,也就說我們可以看著el-image的文章去使用custom-Image

    2.v-on=$listeners

    v-on=listeners的作用和用法與v?bind=listeners的作用和用法與v-bind=listeners的作用和用法與v?bind=attrs類似,它可以將父作用域中的使用v-on的時間監聽器向下傳入到使用了v-on=listeners組件中,和v?bind=listeners組件中,和v-bind=listeners組件中,和v?bind=attrs的功效類似,只不過一個屬性一個是事件。還是custom-Image組件為例,這時候custom-Image組件就擁有了el-image組件的幾乎所有事件。而且其作用效果和用法,是和我們使用el-image是一樣的。

    包含了父作用域中的 (不含 .native 修飾器的) v-on 事件監聽器。
    它可以通過v-on=$listeners傳入內部組件——在創建更高層次的組件時非常有用。
    一段摘自 vue 官網的介紹

    三、封裝el-image的代碼示例

    使用custom-Image組件的示例

    <custom-Image fit=fill class=icon-img :src=picPreview(expert)></custom-Image>
    封裝el-image為custom-Image組件的示例
    <template>
      <div id=CustomImage>
        <el-image v-bind=$attrs v-on=$listeners>
          <div slot=error class=image-slot>
            <img :src=require('image-f/icon-empty-img.png') alt=圖片加載失敗.png/>
          </div>
          <div slot=placeholder class=placeholder-slot>加載中...</div>
        </el-image>
      </div>
    </template>
    <script>
    export default {
      name: 'CustomImage'
    }
    </script>
    <style scoped lang=scss>
      #CustomImage {
      .image-slot {
        text-align: center;
      }
      .placeholder-slot {
        text-align: center;
      }
    }
    </style>
    
    bind前端組件
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    on=listeners=$listeners,會給我們帶來驚喜。下面是一個custom-image組件加載過程以及加載出錯的效果。一段摘自vue官網的介紹包含了父作用域中不作為prop被識別 (且獲取) 的attribute, 綁定 。bind=listeners的作用和用法與v-bind=listeners的作用和用法與v?bind=attrs的功效類似,只不過一個屬性一個是事件。
    Java命名和目錄接口是Java編程語言中接口的名稱( JNDI )。它是一個API(應用程序接口),與服務器一起工作,為開發人員提供了查找和訪問各種命名和目錄服務的通用、統一的接口。 可以使用命名約定從數據庫獲取文件。JNDI為Java?戶提供了使?Java編碼語?在Java中搜索對象的?具。 簡單來說呢,JNDI相當與是Java里面的一個api,它可以通過命名來查找數據和對象。
    目前的Log4j2檢測都需要借助dnslog平臺,是否存在不借助dnslog的檢測方式呢
    匯總項目實施過程中可能出現的故障及解決方法。
    一、前言 這篇文章可能出現一些圖文截圖顏色或者命令端口不一樣的情況,原因是因為這篇文章是我重復嘗試過好多次才寫的,所以比如正常應該是訪問6443,但是截圖中是顯示大端口比如60123這種,不影響閱讀和文章邏輯,無需理會即可,另外k8s基礎那一欄。。。本來想寫一下k8s的鑒權,后來想了想,太長了,不便于我查筆記,還不如分開寫,所以K8S基礎那里屬于湊數???寫了懶得刪(雖然是粘貼的:))
    作為安全工程師,工作中多多少少會遇見這樣那樣的問題或故障,從中總結經驗,查找問題,匯總并分析故障的原因,這是一個安全工程師良好的習慣。每一次技術的突破,都經歷著苦悶,伴隨著快樂,可我們還是執著的繼續努力,從中也積累了更多的經驗。 下面匯總了可能出現的故障及解決方法,看看你是否遇到過?并對你有幫助?
    Web安全常見漏洞修復建議
    服務器的相關信息(真實ip,系統類型,版本,開放端口,WAF等) 網站指紋識別(包括,cms,cdn,證書等),dns記錄 whois信息,姓名,備案,郵箱,電話反查(郵箱丟社工庫,社工準備等) 子域名收集,旁站,C段等 google hacking針對化搜索,pdf文件,中間件版本,弱口令掃描等 掃描網站目錄結構,爆后臺,網站banner,測試文件,備份等敏感文件泄漏等 傳輸協議,通用漏洞,ex
    ?上整理的?試問題?全,有些 HW ?試的題,已經收集好了,提供給?家。
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类