vue+iview+less+echarts實(shí)戰(zhàn)項(xiàng)目總結(jié)
首先我們先分享一下源碼:https://github.com/kunfan96/vue-admin
對于我這種剛開始用Vue做項(xiàng)目的菜鳥來說在組件數(shù)據(jù)定義方面犯了很多錯(cuò)誤,尤其是在這個(gè)頁面
在進(jìn)行數(shù)據(jù)回選的時(shí)候自己重定義已經(jīng)定好的數(shù)據(jù),導(dǎo)致數(shù)據(jù)非常雜亂無章,具體在storeDetail.vue的14--321行,感覺這么多數(shù)據(jù)非常有必要的進(jìn)行裁剪,用js進(jìn)行運(yùn)算把數(shù)據(jù)補(bǔ)充完整,這里相對把后臺的任務(wù)減輕了很多,只是額外增加前端渲染數(shù)據(jù)的量
父子組件數(shù)據(jù)通訊問題
剛開始寫Modal的時(shí)候?qū)τ贛odal的開關(guān)modal父子組件共享的數(shù)據(jù),然后在關(guān)閉的時(shí)候子組件改變了父組件傳遞的數(shù)據(jù)會(huì)報(bào)錯(cuò),也就是props的值
在這里有2個(gè)解決方案,一個(gè)是用vuex共享Modal的開關(guān)(寫起來有點(diǎn)繞,代碼也不簡潔),另外一個(gè)最好的方法是建立一個(gè)mixins文件夾,在mixins的js進(jìn)行操作,關(guān)鍵代碼--->mixins/closeModal.js--->this.$emit('on-cancel',false),子組件通過emit使父組件發(fā)生on-cancel,響應(yīng)一個(gè)事件,這樣寫可以讓其他多個(gè)子組件使用到Modal共用代碼
組件命名方式
在這里我自己定義了文件夾采用了大駝峰命名法,例如文件夾Store,Shop,對于文件以及變量的命名采用小駝峰命名法,如果storeDetail.vue,parcelList.vue
多用flex
2018年flex將會(huì)是主流,兼容性問題也沒必要理睬,還有多注意grind布局,可能也有流行了
多用懶加載
使用懶加載方便在低帶寬時(shí)候能夠帶來更好的用戶體驗(yàn),在參考iview admin代碼我把懶加載的用法統(tǒng)一為
{ path:"/parcel-list", meta:{ group:"parcel", item:"parcel-list" }, component: resolve =>import('@/pages/Parcel/parcelList') }
側(cè)邊欄刷新問題
在這里要注意到組件給了2個(gè)綁定的變量active-name,open-names,這里我們在路由設(shè)置的時(shí)候添加
meta:{ group:"", item:"" }
通過this.$route.meta.group,this.$route.meta.item就可以與active-name,open-names進(jìn)行匹配實(shí)現(xiàn)無刷新操作
記得多npm run build
iview這個(gè)組件有點(diǎn)問題,有時(shí)候就是修改Modal的樣式我明明在style(不帶scoped)標(biāo)簽修改之后npm run dev樣式修改成功,可是build之后樣式就又重新恢復(fù),后來把樣式放在靜態(tài)文件夾中才可以修改成功,還有就是表格居中build之后之后不能居中,總之,多build問題早點(diǎn)發(fā)現(xiàn)早點(diǎn)解決是好事(切莫佛系~~~)
Echarts在VUE的使用
在這里有個(gè)坑,在echarts實(shí)例化的時(shí)候在chart.vue有段代碼
<div :id="chart.id"></div> let myChart=this.$echarts.init(document.getElementById(this.chart.id))
在這里注意到有個(gè)id,我在這里之所以這樣做,把組件的id設(shè)為變量主要是echarts官網(wǎng)文檔寫到在網(wǎng)頁中echarts實(shí)例化的div的id具有唯一性,由于我這個(gè)chars組件需要多次被被同一組件調(diào)用多次所以是只能將id設(shè)為一個(gè)變量(這個(gè)真的坑,調(diào)了很多次上官方文檔看了好幾次才知道...).另外最好把把echars的數(shù)據(jù)封裝一遍
多寫公用組件
框架這種東西本質(zhì)就是減少代碼,公用組件寫好了調(diào)用的時(shí)候使用數(shù)據(jù)渲染就可以了,這樣就能大大減少代碼量,也符合MVVM的思想
- vue.js element-ui tree樹形控件改iview的方法
- vue中使用iview自定義驗(yàn)證關(guān)鍵詞輸入框問題及解決方法
- vue iView 上傳組件之手動(dòng)上傳功能
- vue iview組件表格 render函數(shù)的使用方法詳解
- vue+iview寫個(gè)彈框的示例代碼
- 基于 Vue.js 之 iView UI 框架非工程化實(shí)踐記錄(推薦)
- 淺談vue的iview列表table render函數(shù)設(shè)置DOM屬性值的方法
- vue iview實(shí)現(xiàn)動(dòng)態(tài)路由和權(quán)限驗(yàn)證功能
相關(guān)文章
vue分片上傳視頻并轉(zhuǎn)換為m3u8文件播放的實(shí)現(xiàn)示例
前端上傳大文件、視頻的時(shí)候會(huì)出現(xiàn)超時(shí)、過大、很慢等情況,為了解決這一問題,跟后端配合做了一個(gè)切片的功能,本文主要介紹了vue分片上傳視頻并轉(zhuǎn)換為m3u8文件播放的實(shí)現(xiàn)示例,感興趣的可以了解一下2023-11-11如何寫好一個(gè)vue組件,老夫的一年經(jīng)驗(yàn)全在這了(推薦)
這篇文章主要介紹了如何寫好一個(gè)vue組件,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05在vue中利用全局路由鉤子給url統(tǒng)一添加公共參數(shù)的例子
今天小編就為大家分享一篇在vue中利用全局路由鉤子給url統(tǒng)一添加公共參數(shù)的例子,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-11-11vue項(xiàng)目使用js監(jiān)聽瀏覽器關(guān)閉、刷新、后退事件實(shí)現(xiàn)方法
用vue做的項(xiàng)目,有個(gè)需求就是關(guān)閉瀏覽器的時(shí)候,需要往后臺提交有個(gè)接口,來看看這個(gè)賬號有沒有下線,這篇文章主要給大家介紹了關(guān)于vue項(xiàng)目使用js監(jiān)聽瀏覽器關(guān)閉、刷新、后退事件的實(shí)現(xiàn)方法,需要的朋友可以參考下2024-06-06vue之字符串、數(shù)組之間的相互轉(zhuǎn)換方式
這篇文章主要介紹了vue之字符串、數(shù)組之間的相互轉(zhuǎn)換方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07Vue--Router動(dòng)態(tài)路由的用法示例詳解
這篇文章主要介紹了Vue--Router動(dòng)態(tài)路由的用法,很多時(shí)候,我們需要將給定匹配模式的路由映射到同一個(gè)組件,在?Vue?Router?中,我們可以在路徑中使用一個(gè)動(dòng)態(tài)字段來實(shí)現(xiàn),我們稱之為路徑參數(shù),本文對Vue?Router動(dòng)態(tài)路由相關(guān)知識給大家介紹的非常詳細(xì),需要的朋友參考下吧2022-08-08uniapp使用v-loading并且不引入element-ui的操作方法
這篇文章主要介紹了uniapp使用v-loading并且不引入element-ui,首先創(chuàng)建loading.js,創(chuàng)建lloading.scss,本文結(jié)合示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-10-10