国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

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

瀏覽:9日期:2022-10-23 08:05:49

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

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

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

初始頁(yè)面:

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

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

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

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

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

其中,新增了mixin文件夾,新增了Child1.vue和Child2.vue,更改HelloWorld.vue為Father.vue,因?yàn)楸救擞写a潔癖,覺得vueRouter默認(rèn)的hash模式,會(huì)使得前端路由有些難看,所以改成了history模式,項(xiàng)目更改的文件代碼如下

Child1.vue

<template> <div class='Child1'> <h1>我是子組件1</h1> <p>我現(xiàn)在很{{status}}</p> <button @click='submitChange'>點(diǎn)擊我</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'>點(diǎn)擊我</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

/*這里是專門用來(lái)進(jìn)行mixin測(cè)試的(通過(guò)點(diǎn)擊按鈕會(huì)相應(yīng)的改變對(duì)應(yīng)狀態(tài))*/export const Happy = { data(){ return{ isRealHappy:true, status: ’’, sad: ’難受’, comfort: ’舒服’ } }, methods:{ submitChange(){ if(this.isRealHappy){this.isRealHappy = !this.isRealHappythis.status = this.comfort }else{this.isRealHappy = !this.isRealHappythis.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ù)用

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

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

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

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

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

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

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

標(biāo)簽: Vue
相關(guān)文章:
主站蜘蛛池模板: 免费在线看a| 日韩在线视频线视频免费网站 | 免费播放巨茎人妖不卡片 | 99视频有精品视频免费观看 | 国产日韩精品一区二区 | 欧美一区二区三区在观看 | 国产一级精品毛片 | 国产美女一区二区三区 | 最新国产精品亚洲 | 国产自在线观看 | 欧美人与z0z0xxxx| 国内欧美一区二区三区 | 日韩三级黄色 | 色老久久精品偷偷鲁一区 | 国产一区二区在线观看免费 | 老妇综合久久香蕉蜜桃 | 国内精自线一二区 | 真正免费一级毛片在线播放 | 欧美极品大肚孕妇孕交 | 91精品国产一区二区三区左线 | 国产美女一区二区 | 黄色成人免费观看 | 成人黄色在线免费观看 | 青青热久久国产久精品秒播 | 美女黄网站色一级毛片 | 亚州不卡| 国产一级真人毛爱做毛片 | 黄色国产网站 | 欧美一级大片在线观看 | 久久99久久99精品免观看 | 久草免费在线播放视频 | 国产伦精品一区三区视频 | 午夜爽爽爽男女免费观看hd | 美国一级欧美三级 | 亚洲国内精品自在线影视 | 日韩黄色视屏 | 国产精品毛片天天看片 | 国产成人影院一区二区 | 日韩毛片一级 | 国产精品自拍亚洲 | 久草中文在线 |