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

Vue中mixins的使用方法詳解

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

1 什么是mixins

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

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

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

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

在需要調用的組件中引入 mixins 文件即可。

3 注意事項

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

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

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

(2)合并沖突

當 mixins 的值為對象(components、methods 、computed、data),混入到某個組件中時,選項會被合并。當對象名稱沖突時優(yōu)先組件,組件中的值會覆蓋混入對象的。

// 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)異步請求

當混入里面包含異步請求函數(shù),而我們又需要在組件中使用異步請求函數(shù)的返回值時,我們會取不到此返回值,解決方案是:不要返回結果,而是直接返回異步函數(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)
    })
  }
}

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

相關文章

  • vue實現(xiàn)圖形驗證碼

    vue實現(xiàn)圖形驗證碼

    這篇文章主要為大家詳細介紹了vue實現(xiàn)圖形驗證碼,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-04-04
  • vue前端實現(xiàn)驗證碼登錄功能

    vue前端實現(xiàn)驗證碼登錄功能

    這篇文章主要介紹了vue前端實現(xiàn)驗證碼登錄功能,登錄時圖形驗證通過三種方法結合實例代碼給大家講解的非常詳細, 通過實例代碼介紹了vue登錄時圖形驗證碼功能的實現(xiàn),感興趣的朋友一起看看吧
    2023-12-12
  • Vue+Ant Design開發(fā)簡單表格組件的實戰(zhàn)指南

    Vue+Ant Design開發(fā)簡單表格組件的實戰(zhàn)指南

    在現(xiàn)代前端開發(fā)中,數(shù)據表格是展示信息最常用的組件之一,本文主要為大家介紹了一個基于Vue和Ant Design的表格組件開發(fā)過程,感興趣的可以了解下
    2025-06-06
  • vue路由傳參方式的方式總結及獲取參數(shù)詳解

    vue路由傳參方式的方式總結及獲取參數(shù)詳解

    vue 路由傳參的使用場景一般都是應用在父路由跳轉到子路由時,攜帶參數(shù)跳轉,下面這篇文章主要給大家介紹了關于vue路由傳參方式的方式總結及獲取參數(shù)的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-07-07
  • vue2中watch的用法(通俗易懂,簡單明了)

    vue2中watch的用法(通俗易懂,簡單明了)

    這篇文章主要給大家介紹了關于vue2中watch用法的相關資料,通過watch監(jiān)聽器,我們可以實時監(jiān)控數(shù)據的變化,并且在數(shù)據發(fā)生改變時進行相應的操作,需要的朋友可以參考下
    2023-09-09
  • ElementUI radio組件選中小改造

    ElementUI radio組件選中小改造

    這篇文章主要介紹了ElementUI radio組件選中小改造,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-08-08
  • vue+webpack中配置ESLint

    vue+webpack中配置ESLint

    這篇文章主要介紹了vue+webpack中配置ESLint,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-11-11
  • Vue3實現(xiàn)手寫簽名之Vue3-signature的快速應用實例

    Vue3實現(xiàn)手寫簽名之Vue3-signature的快速應用實例

    簽名組件在許多應用場景中都非常有用,比如在線合同簽署、電子表格簽名等,這篇文章主要介紹了Vue3實現(xiàn)手寫簽名之Vue3-signature的快速應用的相關資料,需要的朋友可以參考下
    2026-04-04
  • 前端Vue.js實現(xiàn)json數(shù)據導出到doc

    前端Vue.js實現(xiàn)json數(shù)據導出到doc

    這篇文章主要介紹了前端Vue.js實現(xiàn)json數(shù)據導出到doc,文章圍繞主題展開詳細的內容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-09-09
  • Vue包大小優(yōu)化的實現(xiàn)(從1.72M到94K)

    Vue包大小優(yōu)化的實現(xiàn)(從1.72M到94K)

    這篇文章主要介紹了Vue包大小優(yōu)化的實現(xiàn)(從1.72M到94K),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-02-02

最新評論

横峰县| 拉萨市| 嫩江县| 河曲县| 黄浦区| 丹巴县| 滕州市| 嵊州市| 大厂| 四会市| 沁源县| 三台县| 鞍山市| 绥滨县| 闽清县| 明溪县| 永吉县| 微山县| 沾化县| 阳新县| 海口市| 云浮市| 定结县| 延庆县| 南川市| 清远市| 原平市| 句容市| 汉阴县| 上林县| 鄂温| 兴国县| 海门市| 化隆| 邓州市| 金昌市| 突泉县| 获嘉县| 泽库县| 临漳县| 乌拉特中旗|