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

Vue Hook Event 深度解讀

 更新時間:2023年01月12日 10:10:29   作者:半獸先生  
Hook Event 是 Vue 的自定義事件結(jié)合生命周期鉤子實現(xiàn)的一種從組件外部為組件注入額外生命周期方法的功能,本文重點給大家介紹Vue Hook Event 解讀,感興趣的朋友一起看看吧

前言

Hook Event (鉤子事件)相信很多 Vue 開發(fā)者都沒有使用過,甚至沒聽過,畢竟 Vue 官方文檔中也沒有提及。

Vue 提供了一些生命周期鉤子函數(shù),供開發(fā)者在特定的邏輯點添加額外的處理邏輯,比如: 在組件掛載階段提供了beforeMount 和 mounted 兩個生命周期鉤子,供開發(fā)者在組件掛階段執(zhí)行額外的邏處理,比如為組件準備渲染所需的數(shù)據(jù)。

那這個Hook Event——鉤子事件,其中也有鉤子的意思,和 Vue 的生命周期鉤子函數(shù)有什么關(guān)系呢? 它又有什么用呢?這就是這邊文章要解答的問題。

 什么是 Hook Event ?

Hook Event是 Vue 的自定義事件結(jié)合生命周期鉤子實現(xiàn)的一種從組件外部為組件注入額外生命周期方法的功能。

 如下圖所示,如果引入第三方業(yè)務(wù)組件,組件內(nèi)部請求數(shù)據(jù),沒有l(wèi)oding,如果修改源碼的話會很麻煩,現(xiàn)在用hook可以解決。

 通過 hook event 在組件外部為組件注入額外的生命周期鉤子邏輯:

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
    </head>
    <body>
        <div id="app">
            <comp @hook:mounted="handleHookEvent"></comp>
        </div>
        <script src="./vue.js"></script>
        <script>
            // 第三方業(yè)務(wù)組件
            Vue.component("comp",{
                template:`
                    <ul>
                        <li v-for="item in arr" :key="JSON.stringify(item)">{{ item }}</li>
                    </ul>
                `,
                data(){
                    return {
                        arr:[]
                    }
                },
                async mounted(){
                    console.log("comp mounted");
                    // 通過 hook event 在組件外部為組件注入額外的生命周期鉤子邏輯
                    // 通過Promise + setTimeout 延時程序,模擬接口調(diào)用的過程
                    this.arr = await new Promise(resolve=>{
                       setTimeout(()=>{
                        resolve([1,2,3,4,5])
                       },2000)
                    }) 
                }
            })
 
            new Vue({
                el:"#app",
                methods:{
                    handleHookEvent() {
                        console.log('loding...');
                    }
                }
            })
        </script>
    </body>
</html>
Hook Event 有什么作用?

通過 Hook Event 可以從組件外部為組件注入額外的生命周期方法。 

總結(jié)

面試官 問: 什么是 Hook Event?
答:
Hook Event是 Vue 的自定義事件結(jié)合生命周期鉤子實現(xiàn)的一種從組件外部為組件注入額外生命周期方法的功能。.

面試官 問: Hook Event 是如果實現(xiàn)的?
答:
<comp @hook:lifecycleMethod="method" />
處理組件自定義事件的時候 (vm.$on)如果發(fā)現(xiàn)組件有 hook:xx 格式的事件(xx為 Vue 的生命周期函數(shù)),測將 vm._hasHookEvent 置為 true ,表示該組件有 Hook Event
在組件生命周期方法被觸發(fā)的時候,內(nèi)部會通過 calLHook 方法來執(zhí)行這些生命周期函數(shù),在生命周期函數(shù)執(zhí)行之后,如果發(fā)現(xiàn) vm._hasHookEvent 為 true,則表示當前組件有 Hook Event,通過vm.$emit('hook:xx') 觸發(fā) Hook Event 的執(zhí)行
這就是 Hook Event 的實現(xiàn)原理。

到此這篇關(guān)于Vue Hook Event 解讀的文章就介紹到這了,更多相關(guān)Vue Hook Event 解讀內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 解決elementui導航折疊卡頓的問題

    解決elementui導航折疊卡頓的問題

    這篇文章主要介紹了解決elementui導航折疊卡頓的問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • Vue使用electron生成桌面應(yīng)用過程詳解

    Vue使用electron生成桌面應(yīng)用過程詳解

    這篇文章主要介紹了Vue使用electron生成桌面應(yīng)用過程,很想使用 electron 制作一個桌面應(yīng)用,但是真的上手使用的時候才發(fā)現(xiàn) electron 的坑實在是太多了,先將遇到的坑記錄在這里,遇到一個記錄一個
    2023-04-04
  • vue實現(xiàn)移動滑塊驗證

    vue實現(xiàn)移動滑塊驗證

    這篇文章主要為大家詳細介紹了vue實現(xiàn)移動滑塊驗證,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • Vue Router路由守衛(wèi)超詳細介紹

    Vue Router路由守衛(wèi)超詳細介紹

    路由守衛(wèi),簡單理解來說就是,當用戶要進行一些操作時,我需要用戶的一些信息或數(shù)據(jù)或行為,我判斷過后,才會同意用戶進行操作,說到這里,我想大家心里都或多或少有點理解了吧
    2023-01-01
  • Vue+canvas實現(xiàn)水印功能

    Vue+canvas實現(xiàn)水印功能

    實際項目中偶爾會遇到給項目頁面背景加水印的需求,這篇文章主要為大家介紹了Vue使用canvas實現(xiàn)水印功能的示例代碼,希望對大家有所幫助
    2023-07-07
  • vue初嘗試--項目結(jié)構(gòu)(推薦)

    vue初嘗試--項目結(jié)構(gòu)(推薦)

    這篇文章主要介紹了vue初嘗試--項目結(jié)構(gòu)的相關(guān)知識,需要的朋友可以參考下
    2018-01-01
  • vue.js過濾器+ajax實現(xiàn)事件監(jiān)聽及后臺php數(shù)據(jù)交互實例

    vue.js過濾器+ajax實現(xiàn)事件監(jiān)聽及后臺php數(shù)據(jù)交互實例

    這篇文章主要介紹了vue.js過濾器+ajax實現(xiàn)事件監(jiān)聽及后臺php數(shù)據(jù)交互,結(jié)合實例形式分析了vue.js前臺過濾器與ajax后臺數(shù)據(jù)交互相關(guān)操作技巧,需要的朋友可以參考下
    2018-05-05
  • Vue?websocket封裝實現(xiàn)方法詳解

    Vue?websocket封裝實現(xiàn)方法詳解

    項目中需要使用websocke,這個是我自己修修改改好多次之后用得最順手的一版,分享一下。這個封裝需要搭配vuex使用,因為收到的數(shù)據(jù)都保存在vuex中了,真的絕絕子好用,解決了我一大堆問題
    2022-09-09
  • vue 自定義組件的寫法與用法詳解

    vue 自定義組件的寫法與用法詳解

    這篇文章主要介紹了vue 自定義組件的寫法與用法,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值 ,需要的朋友可以參考下
    2020-03-03
  • Vue中強制組件重新渲染的正確方法

    Vue中強制組件重新渲染的正確方法

    這篇文章主要介紹了Vue中強制組件重新渲染的正確方法,幫助大家更好的理解和使用vue框架,感興趣的朋友可以了解下
    2021-01-01

最新評論

潍坊市| 奈曼旗| 庆阳市| 呼伦贝尔市| 寻乌县| 龙海市| 三河市| 丰城市| 永德县| 鄂伦春自治旗| 安龙县| 甘泉县| 新昌县| 仁怀市| 镇雄县| 福贡县| 钦州市| 陆丰市| 安新县| 英吉沙县| 宜丰县| 喀喇沁旗| 汉沽区| 上栗县| 休宁县| 迁安市| 康平县| 花垣县| 永德县| 镇宁| 广宁县| 东平县| 南木林县| 沙湾县| 扬州市| 西畴县| 大荔县| 大化| 隆化县| 同仁县| 油尖旺区|