欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

在Vue.js中使用Mixins的方法

 更新時間:2017年09月12日 17:23:34   作者:hzzly  
本篇文章主要介紹了在Vue.js中使用Mixins的方法,Vue的Mixins是非常實用的編程方式,可以使代碼變得容易理解,有興趣的一起來了解一下

一個很常見的場景: 有兩個非常相似的組件, 它們擁有非常相似的基本功能, 但是它們之間又有足夠的不同的地方, 該如何選擇呢? 我們是應(yīng)該將它們分成兩個完全不同的組件呢? 還是創(chuàng)建一個基礎(chǔ)組件, 然后定義足夠多的props以方便區(qū)分使用場景?

這兩種方式都不是完美的: 如果你將它們分成兩個完全不同的組件, 在需求變化(功能變化)時, 可能會增加需要同時修改兩個組件的風(fēng)險, 這違反了”DRY”的前提. 另一方面, 太多的props很快會讓人變得凌亂, 并且, 迫使維護人員, 甚至是你自己, 要首先理解這些props的上下文才能使用它, 這會讓人非常失望.

Vue的Mixins是非常實用的編程方式, 因為最終實用的編程是通過不斷減少運動部件(moving parts)使代碼變得容易理解. (關(guān)于這一點, Michael Feathers有一個很好的引用). 一個mixin允許你封裝一個功能, 以便你能在整個應(yīng)用程序中的不同組件中使用它. 如果mixin被正確的創(chuàng)建, 它們是純粹的–它們不會修改或更改函數(shù)的作用范圍(scope)之外的內(nèi)容, 因此, 您可以在多個地方執(zhí)行它們, 并且只要輸入值相同, 總是能非常可靠得得到相同的結(jié)果. 這真的非常強大.

認(rèn)識Mixins

混合 (mixins) 是一種分發(fā) Vue 組件中可復(fù)用功能的非常靈活的方式?;旌蠈ο罂梢园我饨M件選項。以組件使用混合對象時,所有混合對象的選項將被混入該組件本身的選項。

栗子

假設(shè)我們有一些不同的組件, 它們的工作是切換狀態(tài)boolean, 一個模態(tài)(modal)和一個提示(tooltip). 這些tooltips和modals沒有很多共同之處, 除了這個功能: 它們看起來不一樣, 它們使用起來也不盡相同, 但是它們的邏輯是相似的 .

//modal
const Modal = {
 template: '#modal',
 data() {
  return {
   isShowing: false
  }
 },
 methods: {
  toggleShow() {
   this.isShowing = !this.isShowing;
  }
 }
}
 
//tooltip
const Tooltip = {
 template: '#tooltip',
 data() {
  return {
   isShowing: false
  }
 },
 methods: {
  toggleShow() {
   this.isShowing = !this.isShowing;
  }
 }
}

我們可以從中提取邏輯, 并創(chuàng)建可以復(fù)用的部分:

const toggle = {
 data() {
  return {
   isShowing: false
  }
 },
 methods: {
  toggleShow() {
   this.isShowing = !this.isShowing;
  }
 }
}
 
const Modal = {
 template: '#modal',
 mixins: [toggle]
};
 
const Tooltip = {
 template: '#tooltip',
 mixins: [toggle]
};

duang — 一個小而簡單的:chestnut:讓我們知道了Mixins對于封裝一些可復(fù)用的功能如此有趣、方便、實用。

demo地址:https://github.com/hzzly/xyy-vue

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

相關(guān)文章

  • 對vue事件的延遲執(zhí)行實例講解

    對vue事件的延遲執(zhí)行實例講解

    今天小編就為大家分享一篇對vue事件的延遲執(zhí)行實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-08-08
  • vue路徑寫法之關(guān)于./和@/的區(qū)別

    vue路徑寫法之關(guān)于./和@/的區(qū)別

    這篇文章主要介紹了vue路徑寫法之關(guān)于./和@/的區(qū)別,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • 詳解Vue3的組合式API中如何使用computed屬性

    詳解Vue3的組合式API中如何使用computed屬性

    在Vue中,computed屬性是一種計算屬性,它的值是根據(jù)其他數(shù)據(jù)的值動態(tài)計算出來的,下面小編主要來和大家聊聊Vue 3的組合式API中如何使用computed屬性,感興趣的小伙伴快跟隨小編一起了解一下吧
    2023-06-06
  • Vue項目中使用jquery的簡單方法

    Vue項目中使用jquery的簡單方法

    這篇文章主要給大家介紹了關(guān)于Vue項目中使用jquery的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Vue具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • 使用vue-cli搭建SPA項目的詳細(xì)過程

    使用vue-cli搭建SPA項目的詳細(xì)過程

    vue-cli是vue.js的腳手架,用于自動生成vue.js+webpack的項目模板,本文通過實例代碼給大家介紹vue-cli搭建SPA項目的詳細(xì)過程,感興趣的朋友跟隨小編一起看看吧
    2022-09-09
  • 解決vuecli3中img src 的引入問題

    解決vuecli3中img src 的引入問題

    這篇文章主要介紹了解決vuecli3中img src 的引入問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • 詳解.vue文件解析的實現(xiàn)

    詳解.vue文件解析的實現(xiàn)

    這篇文章主要介紹了詳解.vue文件解析的實現(xiàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-06-06
  • webpack+vue-cli項目中引入外部非模塊格式j(luò)s的方法

    webpack+vue-cli項目中引入外部非模塊格式j(luò)s的方法

    今天小編就為大家分享一篇webpack+vue-cli項目中引入外部非模塊格式j(luò)s的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-09-09
  • 詳解Vue 普通對象數(shù)據(jù)更新與 file 對象數(shù)據(jù)更新

    詳解Vue 普通對象數(shù)據(jù)更新與 file 對象數(shù)據(jù)更新

    本篇文章主要介紹了詳解Vue 普通對象數(shù)據(jù)更新與 file 對象數(shù)據(jù)更新 ,具有一定的參考價值,有興趣的可以了解一下。
    2017-04-04
  • 詳解vue-cli項目開發(fā)/生產(chǎn)環(huán)境代理實現(xiàn)跨域請求

    詳解vue-cli項目開發(fā)/生產(chǎn)環(huán)境代理實現(xiàn)跨域請求

    這篇文章主要介紹了詳解vue-cli項目開發(fā)/生產(chǎn)環(huán)境代理實現(xiàn)跨域請求,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07

最新評論