深刻了解vue的mixins屬性

這篇文章主要介紹了vue的mixins屬性詳解,寫的十分的全面細緻,具備必定的參考價值,對此有須要的朋友能夠參考學習下。若有不足之處,歡迎批評指正。css

今天在開發項目的時候要改變一個標籤的屬性,由於項目中有多個地方都要改(業務邏輯相同),因此就看有沒辦法只改變一個地方,把方法加進去,最後找官網就發現這個屬性。 下面是個人-mixin.js 文件html

import {mapGetters, mapMutations, mapActions} from 'vuex' 
export const playlistMixin = { 
 computed: { 
  ...mapGetters([ 
   'playList'
  ]) 
 }, 
 mounted() { 
  this.handlePlaylist(this.playList) 
 }, //歡迎加入前端全棧開發交流圈一塊兒吹水聊天學習交流:864305860
 activated() { 
  this.handlePlaylist(this.playList) 
 }, 
 watch: { 
  playList(newVal) { 
   this.handlePlaylist(newVal) 
  } 
 }, 
 methods: { 
  handlePlaylist() { 
   throw new Error('component must implement handlePlaylist method') 
  } //歡迎加入前端全棧開發交流圈一塊兒吹水聊天學習交流:864305860
 }  
}
複製代碼

這個文件就暴露出一個對象,不過這個對象和組件很相似,也就是組件的js代碼部分相似。 這個.js文件要作的事情就是,在生命週期中和playList 變量改變的時候觸發handlePlaylist 函數,可是這個函數的邏輯是在各自要改變的組件當中去實現。下面看看怎麼用Mixin。前端

import {playlistMixin} from 'common/js/mixin' //引入Mixin 
 export default { 
  mixins: [playlistMixin], 
  methods: { 
    handlePlaylist (playlist) { 
    let bottom = playlist.length > 0 ? '60px' : ''
    this.$refs.recommend.style.bottom = bottom 
    this.$refs.scroll.refresh() 
   }, //歡迎加入前端全棧開發交流圈一塊兒吹水聊天學習交流:864305860
  } 
 } 
複製代碼

在使用的組件中這樣調用。 mixins: 這個屬性是個數組,也就是說能夠加載多個 minxin 文件。 handlePlaylist 方法是完成業務邏輯。因此在組件的生命週期中都會添加 this.handlePlaylist() 方法。 這樣就能夠減小一部分代碼。vue

結語node

感謝您的觀看,若有不足之處,歡迎批評指正。webpack

本次給你們推薦一個免費的學習羣,裏面歸納移動應用網站開發,css,html,webpack,vue node angular以及面試資源等。 對web開發技術感興趣的同窗,歡迎加入Q羣:864305860,無論你是小白仍是大牛我都歡迎,還有大牛整理的一套高效率學習路線和教程與您免費分享,同時天天更新視頻資料。 最後,祝你們早日學有所成,拿到滿意offer,快速升職加薪,走上人生巔峯。web

相關文章
相關標籤/搜索