亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Vue用mixin合并重復(fù)代碼的實現(xiàn)

 更新時間:2020年11月27日 16:44:25   作者:兵鍋鍋  
這篇文章主要介紹了Vue用mixin合并重復(fù)代碼的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

       在我們做項目的時候,往往有很多代碼邏輯是通用的,比如說,業(yè)務(wù)邏輯類型的判斷,時間戳的轉(zhuǎn)換,url中字符串的截取等等,這些函數(shù)如果在每個需要的頁面中都加入的話,不僅加重了當(dāng)前頁面的邏輯復(fù)雜程度,還會占用大量原本可以省略的內(nèi)存。因此,將這些代碼整理出來統(tǒng)一管理是很有必要的,在vue項目中,我們都知道模塊化和組件化,但vue的框架中還有一個很好用的知識點,就是mixin。

      mixin不僅可以存放data、watch、methods、computed等,還可以存放Vue的生命周期,是不是很神奇呢?

     通過點擊按鈕“點擊我”,實現(xiàn)“難受”和“極好的”相互切換,首先上效果圖:

     初始頁面:

正在加載中

       子組件1和子組件2都可以通過“點擊我”,實現(xiàn)狀態(tài)改變,通過觸發(fā)子組件1的按鈕1,觸發(fā)子組件2的按鈕2次,效果如下:

正在加載中

      項目的核心結(jié)構(gòu)如下:

正在加載中

       其中,新增了mixin文件夾,新增了Child1.vue和Child2.vue,更改HelloWorld.vue為Father.vue,因為本人有代碼潔癖,覺得vueRouter默認(rèn)的hash模式,會使得前端路由有些難看,所以改成了history模式,項目更改的文件代碼如下

Child1.vue

<template>
  <div class="Child1">
    <h1>我是子組件1</h1>
    <p>我現(xiàn)在很{{status}}</p>
    <button @click="submitChange">點擊我</button>
  </div>
</template>
 
<script>
import { Happy } from '../mixin/showHappy'
export default {
  name: "Child1",
  mixins: [Happy]
}
</script>

Child2.vue 

<template>
  <div class="Child2">
    <h1>我是子組件2</h1>
    <p>我現(xiàn)在很{{status}}</p>
    <button @click="submitChange">點擊我</button>
  </div>
</template>
 
<script>
import { Happy } from '../mixin/showHappy'
export default {
  name: "Child2",
  mixins: [Happy]
}
</script>

Father.vue

<template>
 <div class="Father">
  <h1>我是父組件</h1>
  <child1-component />
  <child2-component />
 </div>
</template>
 
<script>
import Child1Component from './Child1'
import Child2Component from './Child2'
export default {
 name: 'Father',
 data () {
  return {
   msg: 'Welcome to Your Vue.js App'
  }
 },
 components:{
  Child1Component,
  Child2Component
 }
}
</script>

mixin/showHappy.js

/*這里是專門用來進(jìn)行mixin測試的(通過點擊按鈕會相應(yīng)的改變對應(yīng)狀態(tài))*/
export const Happy = {
  data(){
    return{
      isRealHappy:true,
      status: '',
      sad: '難受',
      comfort: '舒服'
    }
  },
  methods:{
    submitChange(){
      if(this.isRealHappy){
        this.isRealHappy = !this.isRealHappy
        this.status = this.comfort
      }else{
        this.isRealHappy = !this.isRealHappy
        this.status = this.sad
      }
    }
  }
}

router/index.js

import Vue from 'vue'
import Router from 'vue-router'
import Father from '@/components/Father'
 
Vue.use(Router)
 
const routes = [
 {
  path: '/',
  name: 'Father',
  component: Father
 }
]
const routers = new Router({
 mode: 'history',
 routes
})
export default routers

那么,代碼貼了這么多,mixin究竟有啥用呢?那就是代碼復(fù)用

如果我們不用mixin這種方式,直接把這段代碼貼到Child1.vue和Child2.vue中,也是可以實現(xiàn)與頁面展示一樣的效果:

         很顯然,mixin的書寫方式更優(yōu)雅,雖然項目中沒有這么簡單的代碼,但這是一種思想! 讓我們更精致一些,讓項目讓代碼盡可能高類聚低耦合,如此一來,我們必然會成為更優(yōu)秀的程序員!         

順便提及一下使用小細(xì)節(jié),如果在組件中出現(xiàn)了與mixin中相同的屬性或方法,會優(yōu)先展示組件中的屬性和方法哦!各位小伙伴,一起加油吧!

到此這篇關(guān)于Vue用mixin合并重復(fù)代碼的實現(xiàn)的文章就介紹到這了,更多相關(guān)Vue mixin合并重復(fù)代碼內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vue父子組件相互通信方法示例梳理總結(jié)

    vue父子組件相互通信方法示例梳理總結(jié)

    這篇文章主要為大家介紹了vue父子組件相互通信方式示例梳理總結(jié),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-05-05
  • vue 全選與反選的實現(xiàn)方法(無Bug 新手看過來)

    vue 全選與反選的實現(xiàn)方法(無Bug 新手看過來)

    下面小編就為大家分享一篇vue 全選與反選的實現(xiàn)方法(無Bug 新手看過來),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-02-02
  • vue3實現(xiàn)淘寶放大鏡效果的示例代碼

    vue3實現(xiàn)淘寶放大鏡效果的示例代碼

    放大鏡效果在很多購物網(wǎng)站都可以看到,本文主要介紹了vue3實現(xiàn)淘寶放大鏡效果的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • Vuex中g(shù)etters和actions的使用補(bǔ)充說明

    Vuex中g(shù)etters和actions的使用補(bǔ)充說明

    這篇文章主要介紹了在Vuex中關(guān)于getters和actions使用的補(bǔ)充作了簡要說明,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2021-09-09
  • uniapp中app與webview的通訊代碼示例

    uniapp中app與webview的通訊代碼示例

    這篇文章主要給大家介紹了關(guān)于uniapp中app與webview通訊的相關(guān)資料,這里的通信主要是打包APP端和web-view內(nèi)嵌網(wǎng)頁的雙向通信,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-03-03
  • vue.set() (this.$set)的用法及說明

    vue.set() (this.$set)的用法及說明

    這篇文章主要介紹了vue.set() (this.$set)的用法及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • Vue+SSM實現(xiàn)圖片上傳預(yù)覽效果

    Vue+SSM實現(xiàn)圖片上傳預(yù)覽效果

    這篇文章主要為大家詳細(xì)介紹了Vue+SSM實現(xiàn)圖片上傳預(yù)覽效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • 解決ElementUI中tooltip出現(xiàn)無法顯示的問題

    解決ElementUI中tooltip出現(xiàn)無法顯示的問題

    這篇文章主要介紹了解決ElementUI中tooltip出現(xiàn)無法顯示的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • 詳解如何在Vue中進(jìn)行表單自定義驗證

    詳解如何在Vue中進(jìn)行表單自定義驗證

    在Vue應(yīng)用中,表單驗證是非常重要的一部分,Vue提供了一些內(nèi)置的驗證規(guī)則,比如required、min、max等,但是有時候我們需要對表單進(jìn)行自定義驗證,以滿足特定的業(yè)務(wù)需求,本文將介紹如何在Vue中進(jìn)行表單自定義驗證,感興趣的朋友可以參考下
    2023-12-12
  • Vue.js實現(xiàn)大屏數(shù)字滾動翻轉(zhuǎn)效果

    Vue.js實現(xiàn)大屏數(shù)字滾動翻轉(zhuǎn)效果

    大屏數(shù)字滾動翻轉(zhuǎn)效果來源于最近工作中element后臺管理頁面一張大屏的UI圖,該UI圖上有一個模塊需要有數(shù)字往上翻動的效果。本文通過截圖代碼的形式給大家介紹Vue.js實現(xiàn)大屏數(shù)字滾動翻轉(zhuǎn)效果,感興趣的朋友一起看看吧
    2019-11-11

最新評論