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

Vue中mixins的使用方法詳解

 更新時(shí)間:2024年03月15日 08:51:54   作者:代碼搬運(yùn)媛  
mixins是一種分發(fā) Vue 組件中可復(fù)用功能的使用方式,它是一個(gè) js 對象,包含我們組件script中的任意功能選項(xiàng),下面就跟隨小編一起來看看它的具體使用吧

1 什么是mixins

它是一種分發(fā) Vue 組件中可復(fù)用功能的使用方式,mixins 是一個(gè) js 對象,包含我們組件script中的任意功能選項(xiàng),如:data、components、methods、created、computed 等等。我們只要將公用的功能以對象的方式傳入 mixins 選項(xiàng)中,當(dāng)組件使用 mixins 對象,所有 mixins 對象的選項(xiàng)都將被擴(kuò)展到該組件本身的選項(xiàng)中,提高代碼的重用性,易于代碼維護(hù)。

當(dāng)多個(gè)組件中的數(shù)據(jù)或功能很相近時(shí),可以通過 mixins 將公共部分提取出來,進(jìn)行封裝。

2 創(chuàng)建并使用 mixins

在 src 文件夾創(chuàng)建 mixins 文件夾,在文件夾下創(chuàng)建一個(gè) js 文件,在這個(gè) js 對象中可以定義 data、components、methods、created、computed 等屬性,并通過 export 導(dǎo)出該對象。

在需要調(diào)用的組件中引入 mixins 文件即可。

3 注意事項(xiàng)

(1)方法和參數(shù)在不同組件中不共享

即其他組件無法從當(dāng)前組件中獲取 mixins 中的數(shù)據(jù)和方法,很好的做到了數(shù)據(jù)隔離的效果。

// 在 myMixins.js 中定義一個(gè) age 字段和 getAge 方法,用來獲取年齡信息
export const myMixins = {
  data() {
    return {
      age: 18,
    }
  },
  mounted() {
    this.getAge()
  },
  methods: {
    getAge() {
      console.log(this.age)
    }
  }
}
// 在第一個(gè)組件中引入 mixins,并且對 age 加1 
import { myMixins } from "@/mixins/myMixins.js";
export default {
  mixins: [myMixins],
  data() {
    return {}
  },
  created() {
    this.age++
  },
}
// 發(fā)現(xiàn)控制臺(tái)輸出 19,說明當(dāng)前組件的 age 變化了 

(2)合并沖突

當(dāng) mixins 的值為對象(components、methods 、computed、data),混入到某個(gè)組件中時(shí),選項(xiàng)會(huì)被合并。當(dāng)對象名稱沖突時(shí)優(yōu)先組件,組件中的值會(huì)覆蓋混入對象的。

// myMixins.js
export const myMixins = {
  components:{},
  data() {
    return {}
  },
  created() {
    console.log('data from mixins')
  }
}
// 組件中引入 mixins
import { myMixins } from "@/mixins/myMixins.js";
export default {
  mixins: [myMixins],
  data() {
    return {}
  },
  created() {
    console.log('data from template')
  }
}
// 先輸出混入對象的值,再輸入組件的值
// data from mixins
// data from template

(3)異步請求

當(dāng)混入里面包含異步請求函數(shù),而我們又需要在組件中使用異步請求函數(shù)的返回值時(shí),我們會(huì)取不到此返回值,解決方案是:不要返回結(jié)果,而是直接返回異步函數(shù)

// myMixins.js 中直接返回異步函數(shù)
export const myMixins = {
  components:{},
  data() {
    return {
      num: 1,
    }
  },
  methods: {
   async getDate1() {
      let result = await new Promise((resolve,reject) => {
          let a = 1;
          setTimeout(() => {
            resolve(1)
          },500)
       })
       return result
    },
  }
}
// 組件中獲取混入的異步函數(shù),通過then 方法獲取函數(shù)值。
import { myMixins } from "./myMixins.js";
export default {
  mixins: [myMixins],
  data() {
    return {}
  },
  mounted() {
    this.getDate1().then(res => {
      console.log(res)
    })
  }
}

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

相關(guān)文章

  • vue.js中toast用法及使用toast彈框的實(shí)例代碼

    vue.js中toast用法及使用toast彈框的實(shí)例代碼

    這篇文章主要介紹了vue.js中toast用法及使用toast彈框的實(shí)例代碼,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒加載,需要的朋友可以參考下
    2018-08-08
  • vue.js實(shí)現(xiàn)簡易折疊面板

    vue.js實(shí)現(xiàn)簡易折疊面板

    這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)簡易折疊面板,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • Vue封裝DateRangePicker組件流程詳細(xì)介紹

    Vue封裝DateRangePicker組件流程詳細(xì)介紹

    在后端管理項(xiàng)目中使用vue來進(jìn)行前端項(xiàng)目的開發(fā),但我們都知道Vue實(shí)際上無法監(jiān)聽由第三方插件所引起的數(shù)據(jù)變化。也無法獲得JQuery這樣的js框架對元素值的修改的。而日期控件daterangepicker又基于JQuery來實(shí)現(xiàn)的
    2022-11-11
  • Element控件Tree實(shí)現(xiàn)數(shù)據(jù)樹形結(jié)構(gòu)的示例代碼

    Element控件Tree實(shí)現(xiàn)數(shù)據(jù)樹形結(jié)構(gòu)的示例代碼

    我們在開發(fā)中肯定會(huì)遇到用樹形展示數(shù)據(jù)的需求,本文主要介紹了Element控件Tree實(shí)現(xiàn)數(shù)據(jù)樹形結(jié)構(gòu)的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-08-08
  • 詳解如何使用Vue-PDF在應(yīng)用中嵌入PDF文檔

    詳解如何使用Vue-PDF在應(yīng)用中嵌入PDF文檔

    在現(xiàn)代Web應(yīng)用中,PDF文檔的使用非常普遍,因?yàn)樗梢栽诟鞣N設(shè)備和操作系統(tǒng)上保持一致的外觀和格式,本文我們就來探討一下如何在Vue.js應(yīng)用中使用vue-pdf庫嵌入PDF文檔吧
    2023-08-08
  • vue子組件如何使用父組件傳過來的值

    vue子組件如何使用父組件傳過來的值

    這篇文章主要介紹了vue子組件如何使用父組件傳過來的值,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • Vue3配置路由ERROR in [eslint]報(bào)錯(cuò)問題及解決

    Vue3配置路由ERROR in [eslint]報(bào)錯(cuò)問題及解決

    這篇文章主要介紹了Vue3配置路由ERROR in [eslint]報(bào)錯(cuò)問題及解決方案,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • Vue?數(shù)據(jù)綁定事件綁定樣式綁定語法示例

    Vue?數(shù)據(jù)綁定事件綁定樣式綁定語法示例

    這篇文章主要為大家介紹了Vue?數(shù)據(jù)綁定事件綁定樣式綁定語法示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • 解決vue單頁面修改樣式無法覆蓋問題

    解決vue單頁面修改樣式無法覆蓋問題

    這篇文章主要介紹了vue單頁面修改樣式無法覆蓋問題,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-08-08
  • Vuejs從數(shù)組中刪除元素的示例代碼

    Vuejs從數(shù)組中刪除元素的示例代碼

    這篇文章主要介紹了Vuejs從數(shù)組中刪除元素的示例代碼,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-02-02

最新評(píng)論