vue重構自動建站

dykily發表於2018-03-22

為什麼會寫這個專案

最近在公司一直在做小程式的專案,在專案中就有一個使用元件構建小程式的功能,就類似以前的建站工具,這個功能是用比較傳統的方式寫的,使用JQ和JQ-UI的拖拽功能,相信大家也很熟悉這種組合方式,由於最近一直在學習vue,並且vue是資料驅動,就想用vue來寫一下這個功能。剛開始的準備寫的時候,想在網上找一個類似的demo研究研究,找了一圈發現,基本上什麼也找不到太多開源,之前好不容易找到一篇類似的文章,作者也要做類似的功能,但是沒有把程式碼開源出來,最後只能自己東平西湊的找資料,完成了專案的第一個測試版。

專案準備

1、vue-cli

2、vuedraggable

3、sortablejs

4、vuex

5、element-ui

vue-cli是vue官方推薦的腳手架還很適合有vue基礎的人使用。 在這個專案中由於用到了拖拽元素就為了方便就使用了vuedraggablevuedraggable是基於sortablejs的封裝所以也要引入。由於元件中會存在大量的資料所以為了資料的統一管理,這裡就使用了vuexelement-ui這個我就不解釋了,為了好看點就引入。

安裝過程

1、安裝vue-cli並初始化一個vue專案

npm install --global vue-cli
vue init webpack vuetest
複製程式碼

2、安裝專案所需要的包

npm install vuedraggable
npm install sortablejs
npm install --save vuex
npm install --save axios
npm install element-ui
複製程式碼

3、執行專案

npm run dev
複製程式碼

主要程式碼

完成上面這些操作就可以正式開始編寫程式碼了

1、main.js

在main.js檔案中基本上是引入了專案所需要的模組

vue重構自動建站

2、dragapi.js

dragapi.js左側選單欄的資料配置

vue重構自動建站

3、componentsData.js

每個元件初始化的資料配置

vue重構自動建站

4、vuex.js

對資料的集中管理,每當元件的某個資料變化的時候都要同步到vuex

vue重構自動建站

5、App.vue

在App.vue主要有三個自定義元件,draggable的拖拽元件,Sort元素排序元件,BaseEdit元素樣式編輯元件

vue重構自動建站

draggable是vuedraggable的元件我就不多說了,下面我們來看一下Sort.vue檔案是怎麼樣的

6、Sort.vue

這個檔案其實是挺好理解的就是顯示元件檢視,這裡我們可以看到我們引入了Btn.vue、TextCp.vue這個兩個元件,當拖拽元件到Sort的時候回顯相應的元件檢視。在Sort.vue也要引入vuex因為我們需要更新檢視只要更新資料就可以了,這也是資料驅動的好處,不用再頻繁的操作DOM。

vue重構自動建站

7、BaseEdit.vue

這個就是編輯器元件,可以回顯並編輯元件的資料。每個元件都會有一個自己單獨的編輯器元件,本來想把編輯元件放到放到元件本身去會更好,可能會在下次更新github會封裝在一起。

vue重構自動建站

接下來我們看看每個元件具體是怎麼寫的

8、TextCp.vue

vue重構自動建站

9、TextCpEdit.vue

vue重構自動建站

10、DeleteCp.vue

這是對元件進行刪除操作的刪除元件

vue重構自動建站

總結

說一下編寫元件的基本流程

1、dragapi.js新增一項元件

2、componentsData.js 新增元件建立時需要初始化的資料

3、寫xxx.vue元件(在Sort檢視中顯示)

4、寫xxxEdit.vue元件(元件的特有編輯器)

看一下最終的效果

vue重構自動建站

由於這是本人第一次寫技術貼,有很多不足的地方,請大家諒解。如果有什麼地方寫得不明白可以到github下載原始碼研究一下,或者在下面評論或者提issues。

最後把原始碼附上 原始碼地址

https://github.com/dykily/dragWidget

相關文章