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

Vue中mixins混入的介紹與使用詳解

 更新時間:2022年12月23日 16:36:13   作者:嬌花*  
如果我們在每個組件中去重復(fù)定義這些屬性和方法會使得項目出現(xiàn)代碼冗余并提高了維護(hù)難度,針對這種情況官方提供了Mixins特性,這時使用Vue mixins混入有很大好處,下面就介紹下Vue mixins混入使用方法,需要的朋友參考下吧

一、來自官網(wǎng)的描述

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

二、如何創(chuàng)建Mixins

在src目錄下創(chuàng)建一個mixins文件夾,文件夾下新建一個myMixins.js文件。前面我們說了mixins是一個js對象,所以應(yīng)該以對象的形式來定義myMixins,在對象中我們可以和vue組件一樣來定義我們的data、components、methods 、created、computed等屬性,并通過export導(dǎo)出該對象

export const myMixins = {
components:{},
data(){
return {}
},
created(){},
mounted(){},
computed(){},
methods: {}
}

三、項目中如何使用混入

在vue組件內(nèi),如果想將一些公共功能,如組件、方法、鉤子函數(shù)等復(fù)用,混入是一個很好的選擇。下面簡單介紹一下混入的方式及特點。

你可以將一個對象作為混入的選項,在組件中復(fù)用。因為vue實例也是對象,所以你可以將vue實例作為混入選項傳遞進(jìn)去。

我們可以創(chuàng)建一個目錄mixins,在創(chuàng)建一個comment.js文件如圖:

1.定義混入對象

common.js 就是我們要混入其它組件的內(nèi)容:

export default {
	data(){
	return {
      msg: 'erwerwe',
      form:{
        a:'aaa'
      }
    }
	},
	filters: { //過濾器
		numToString(value) {
			return value.toString();
		}
	},
	created(){ //鉤子函數(shù)
		    console.log('這是混入的組件')
	},
	computed: {   //計算屬性
		ids() {
				return  !this.loading
			 }
	},
	methods:{
     exm(){
      console.log('這是混入的exm方法')
      },
     clickFn(){
      console.log(this.msg)
    },
	// 其它屬性方法......
		}
}

2.定義使用混入的組件

test.vue組件用mixins把common.js內(nèi)容混入當(dāng)前組件

<template>
  <div class="hello">
    <h1>{{ msg }}</h1>
    <h1>{{ form.a }}</h1>
    <button @click="buttonClick">current</button>
  </div>
</template>
<script>
//導(dǎo)入js文件
import fun from './mixins/common.js'
export default {
  name: "HelloWorld",
  mixins:[fun],  //混入 fnu對象
  created(){
    console.log('這是當(dāng)前組件')
  },
  data() {
    return {
      msg: "組件的msg"
    }
  },
  methods:{
    buttonClick(){
      console.log(this.form.a)
      console.log(this.msg)
      this.clickFn();
      this.exm();
    },
    exm(){
      console.log('這是組件的exm方法')
    }
  }
}
</script>

3.存在的問題:

混入的對象中的msg屬性,和組件的msg屬性沖突,以組件的值優(yōu)先。組件中沒有的屬性,混入對象中的生效。

同名鉤子函數(shù)將會合并成一個數(shù)組,都會調(diào)用,混入函數(shù)先調(diào)用

值為對象的選項,如methods,components,directives等,將會合并為一個新對象,如果鍵名沖突,組件的值優(yōu)先

四、與vuex的區(qū)別

vuex:用來做狀態(tài)管理的,里面定義的變量在每個組件中均可以使用和修改,在任一組件中修改此變量的值之后,其他組件中此變量的值也會隨之修改。

Mixins:可以定義共用的變量,在每個組件中使用,引入組件中之后,各個變量是相互獨立的,值的修改在組件中不會相互影響。

五、與公共組件的區(qū)別

組件:在父組件中引入組件,相當(dāng)于在父組件中給出一片獨立的空間供子組件使用,然后根據(jù)props來傳值,但本質(zhì)上兩者是相對獨立的。

Mixins:則是在引入組件之后與組件中的對象和方法進(jìn)行合并,相當(dāng)于擴展了父組件的對象與方法,可以理解為形成了一個新的組件。

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

相關(guān)文章

  • VUE-cli3使用 svg-sprite-loader

    VUE-cli3使用 svg-sprite-loader

    svg-sprite-loader 的插件,用來根據(jù)導(dǎo)入的 svg 文件自動生成 symbol 標(biāo)簽并插入 html,這篇文章主要介紹了VUE-cli3使用 svg-sprite-loader,需要的朋友可以參考下
    2018-10-10
  • vue中el-select中多選回顯數(shù)據(jù)后沒法重新選擇和更改的解決

    vue中el-select中多選回顯數(shù)據(jù)后沒法重新選擇和更改的解決

    本文主要介紹了vue中el-select中多選回顯數(shù)據(jù)后沒法重新選擇和更改解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-01-01
  • iview+vue實現(xiàn)導(dǎo)入EXCEL預(yù)覽功能

    iview+vue實現(xiàn)導(dǎo)入EXCEL預(yù)覽功能

    這篇文章主要為大家詳細(xì)介紹了iview+vue實現(xiàn)導(dǎo)入EXCEL預(yù)覽功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • vue基于better-scroll仿京東分類列表

    vue基于better-scroll仿京東分類列表

    這篇文章主要為大家詳細(xì)介紹了vue基于better-scroll仿京東分類列表,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-06-06
  • vue2筆記 — vue-router路由懶加載的實現(xiàn)

    vue2筆記 — vue-router路由懶加載的實現(xiàn)

    本篇文章主要介紹了vue2筆記 — vue-router路由懶加載示例,實例分析了vue-router路由懶加載的實現(xiàn),具有一定參考借鑒價值,需要的朋友可以參考下
    2017-03-03
  • vuejs實現(xiàn)ready函數(shù)加載完之后執(zhí)行某個函數(shù)的方法

    vuejs實現(xiàn)ready函數(shù)加載完之后執(zhí)行某個函數(shù)的方法

    這篇文章主要介紹了vuejs實現(xiàn)ready函數(shù)加載完之后執(zhí)行某個函數(shù)的方法,需要的朋友可以參考下
    2018-08-08
  • 三步搞定:Vue.js調(diào)用Android原生操作

    三步搞定:Vue.js調(diào)用Android原生操作

    這篇文章主要介紹了三步搞定:Vue.js調(diào)用Android原生操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • vue組件生命周期鉤子使用示例詳解

    vue組件生命周期鉤子使用示例詳解

    這篇文章主要為大家介紹了vue組件生命周期鉤子使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪
    2022-04-04
  • 在nuxt中使用路由重定向的實例

    在nuxt中使用路由重定向的實例

    這篇文章主要介紹了在nuxt中使用路由重定向的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • 詳解Weex基于Vue2.0開發(fā)模板搭建

    詳解Weex基于Vue2.0開發(fā)模板搭建

    這篇文章主要介紹了詳解Weex基于Vue2.0開發(fā)模板搭建,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-03-03

最新評論