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

詳解Vue實(shí)戰(zhàn)指南之依賴(lài)注入(provide/inject)

 更新時(shí)間:2018年11月13日 09:49:30   作者:Chendye  
這篇文章主要介紹了詳解Vue實(shí)戰(zhàn)指南之依賴(lài)注入(provide/inject),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

案例

UI美眉說(shuō)咱家的選項(xiàng)菜單太丑了,小哥哥能不能美化一下呀,灑家自然是說(shuō)小意思啦~

自定義一個(gè)select組件,so easy~

簡(jiǎn)單粗暴型:

<el-select v-model="favourite" :option="[]"></el-select>

option作為數(shù)據(jù)進(jìn)來(lái)就ok啦。

然后發(fā)現(xiàn)下列問(wèn)題:

  • key-value,不是所有的接口都是id-name
  • option要disabled 怎么辦?
  • option存在幾種情況怎么辦?
  • ...

回頭看看原生的寫(xiě)法是這樣:

<select v-model="favourite">
 <option value="1">Vue</option>
 <option value="2">React</option>
 <option value="3">Angular</option>
</select>

還要加個(gè)el-option組件,靈活自由型:

<el-select v-model="favourite">
 <el-option value="1">Vue</el-option>
 <el-option value="2">React</el-option>
 <el-option value="3">Angular</el-option>
</el-select>

好啦,這樣設(shè)計(jì)就能完美解決之前的幾個(gè)問(wèn)題。

接著要解決選擇了某一個(gè)el-option,怎么告訴el-select,$parent是一種選擇,那么el-select當(dāng)前的值又怎么告訴el-option你被選中了呢~ 筆者沒(méi)有繼續(xù)去深究,因?yàn)榭吹搅薃PIprovide/inject

官方說(shuō)明:

允許一個(gè)祖先組件向其所有子孫后代注入一個(gè)依賴(lài),不論組件層次有多深(這也是使用$parent不好實(shí)現(xiàn)的地方),并在起上下游關(guān)系成立的時(shí)間里始終生效。
不論組件層次有多深,這個(gè)簡(jiǎn)直太爽了,不用再關(guān)心dom層級(jí),只要在祖先組件內(nèi)部就可以一直使用祖先組件提供的provide

用法

下面貼出一部分select的實(shí)現(xiàn):

  • provide:Object | () => Object
  • inject:Array<string> | { [key: string]: string | Symbol | Object }

el-select

export default {
 name: "el-select",
 provide() {
 return {
 select: this
 };
 }
}

el-option

export default {
 name:'el-option',
 inject:['select'],
 created(){
 if(this.select.value===this.value){
 this.select.label=this.label;
 }
 }
}

總結(jié)

provide/inject 是解決組件之間的通信問(wèn)題的利器,不受層級(jí)結(jié)構(gòu)的限制。

但也不是隨便去濫用,通信代表著耦合:

provide 和 inject 主要為高階插件/組件庫(kù)提供用例。并不推薦直接用于應(yīng)用程序代碼中。

官方文檔:

https://cn.vuejs.org/v2/api/#provide-inject
https://cn.vuejs.org/v2/guide/components-edge-cases.html#%E4%BE%9D%E8%B5%96%E6%B3%A8%E5%85%A5

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

相關(guān)文章

  • 聊聊vue生命周期鉤子函數(shù)有哪些,分別什么時(shí)候觸發(fā)

    聊聊vue生命周期鉤子函數(shù)有哪些,分別什么時(shí)候觸發(fā)

    這篇文章主要介紹了聊聊vue生命周期鉤子函數(shù)有哪些,分別什么時(shí)候觸發(fā)?具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • VUE3傳值相關(guān)的6種方法總結(jié)

    VUE3傳值相關(guān)的6種方法總結(jié)

    件間傳參是vue開(kāi)發(fā)過(guò)程中一個(gè)很常見(jiàn)的應(yīng)用,對(duì)于我們后端開(kāi)發(fā)來(lái)說(shuō),每次看到這種組件傳參的代碼就一頭霧水,下面這篇文章主要給大家介紹了關(guān)于VUE3傳值相關(guān)的6種方法,需要的朋友可以參考下
    2023-04-04
  • Vue如何實(shí)現(xiàn)iframe的上一步、下一步操作

    Vue如何實(shí)現(xiàn)iframe的上一步、下一步操作

    這篇文章主要介紹了Vue如何實(shí)現(xiàn)iframe的上一步、下一步操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • Iframe在Vue中的狀態(tài)保持技術(shù)

    Iframe在Vue中的狀態(tài)保持技術(shù)

    這篇文章主要為大家介紹了Iframe在Vue中的狀態(tài)保持技術(shù)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-05-05
  • 詳解webpack打包vue項(xiàng)目之后生成的dist文件該怎么啟動(dòng)運(yùn)行

    詳解webpack打包vue項(xiàng)目之后生成的dist文件該怎么啟動(dòng)運(yùn)行

    這篇文章主要介紹了詳解webpack打包vue項(xiàng)目之后生成的dist文件該怎么啟動(dòng)運(yùn)行,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • vue中狀態(tài)管理器Pinia的用法詳解

    vue中狀態(tài)管理器Pinia的用法詳解

    Pinia?是?Vue.js?的輕量級(jí)狀態(tài)管理庫(kù),最近很受歡迎,它使用?Vue?3?中的新反應(yīng)系統(tǒng)來(lái)構(gòu)建一個(gè)直觀且完全類(lèi)型化的狀態(tài)管理庫(kù),下面就跟隨小編一起來(lái)學(xué)習(xí)一下它的具體使用吧
    2023-10-10
  • vue中的vendor.js文件過(guò)大問(wèn)題及解決

    vue中的vendor.js文件過(guò)大問(wèn)題及解決

    這篇文章主要介紹了vue中的vendor.js文件過(guò)大問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • 關(guān)于Vue項(xiàng)目使用scss終端發(fā)出警告解決方法

    關(guān)于Vue項(xiàng)目使用scss終端發(fā)出警告解決方法

    這篇文章主要介紹了關(guān)于Vue項(xiàng)目使用scss終端發(fā)出警告的解決方法,出現(xiàn)這個(gè)問(wèn)題的原因是項(xiàng)目中使用了DartSass舊版的JavaScriptAPI,這些API已被棄用,文章將解決的辦法介紹的非常詳細(xì),需要的朋友可以參考下
    2025-04-04
  • vant的picker組件設(shè)置文字超長(zhǎng)滾動(dòng)方式

    vant的picker組件設(shè)置文字超長(zhǎng)滾動(dòng)方式

    這篇文章主要介紹了vant的picker組件設(shè)置文字超長(zhǎng)滾動(dòng)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • 使用Webstorm調(diào)試Vue代碼詳細(xì)圖文教程

    使用Webstorm調(diào)試Vue代碼詳細(xì)圖文教程

    WebStorm是一款優(yōu)秀的前端開(kāi)發(fā)IDE,之前一直可以調(diào)試Vue項(xiàng)目,下面這篇文章主要給大家介紹了關(guān)于使用Webstorm調(diào)試Vue代碼的詳細(xì)圖文教程,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2024-05-05

最新評(píng)論

印江| 石台县| 宜春市| 滁州市| 雅安市| 新竹县| 墨江| 斗六市| 汾西县| 彭泽县| 高安市| 长沙市| 麻阳| 肃宁县| 丹巴县| 宁陕县| 方山县| 玉环县| 宁南县| 襄城县| 武邑县| 大安市| 泽普县| 志丹县| 桂阳县| 沾化县| 巴中市| 赤水市| 新河县| 桐庐县| 巴塘县| 建水县| 灌南县| 贞丰县| 阿拉善盟| 林口县| 日喀则市| 浦城县| 商南县| 临江市| 沽源县|