国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Markcook2.0,使用Vue2.0和Vuex2.0進(jìn)行完全重構(gòu)升級

mrcode / 1166人閱讀

摘要:新版本允許多任務(wù)操作,這意味著你可以通過同時(shí)打開多個(gè)文件,在側(cè)邊欄中可以方便地進(jìn)行切換你可以通過拖拽文件的方式把文件直接添加到的工作空間當(dāng)中最大的變化,在于工具欄的升級。

隨著Vue2.0的正式推出,我也正好籍此機(jī)會對我的開源項(xiàng)目Markcook進(jìn)行重構(gòu)。這一次重構(gòu)既打發(fā)了我在高速路上堵車的無聊時(shí)光,又加深了對Vue2.0和Vuex2.0使用的認(rèn)識,可謂一舉多得。

項(xiàng)目地址:https://github.com/jrainlau/m...
在線地址:http://jrainlau.github.io/mar...
桌面程序下載(僅windows):markcook2.0-win32-x64.zip

什么是Markcook?

在上一個(gè)版本中我寫了一篇文章,叫做Markcook 1.2,超輕的開源markdown編輯器,但是仍然缺乏對Markcook的一個(gè)完整的定義。在2.0版本中,Markcook的定義是:

A smart and beautiful markdown editor.

一個(gè)聰明且好看的markdown編輯器。

更新內(nèi)容

2.0版本使用了Google的Material Design作為設(shè)計(jì)規(guī)范,對UI部分進(jìn)行了完全的重構(gòu),提供了更加方便的操作,同時(shí)在視覺上也更加舒適。對于用戶體驗(yàn)也有著更為詳細(xì)和人性化的設(shè)計(jì),在最大限度上提供最舒適的編輯環(huán)境。

新版本允許多任務(wù)操作,這意味著你可以通過Markcook同時(shí)打開多個(gè)markdown文件,在側(cè)邊欄中可以方便地進(jìn)行切換:

你可以通過拖拽文件的方式把文件直接添加到Markcook的工作空間當(dāng)中:

最大的變化,在于工具欄的升級。你可以通過點(diǎn)擊工具欄的按鈕,在頁面中插入markdown格式的語句,或者直接把一段文字變成markdown格式:

你可能會好奇為什么Markcook并沒有像其他的編輯器一樣提供“保存進(jìn)度”的功能。其實(shí)Markcook會在你輸入的過程中自動(dòng)地為你保存內(nèi)容,這樣即使你把頁面關(guān)掉,在下一次打開Markcook的時(shí)候,你會發(fā)現(xiàn)你之前的內(nèi)容仍然留在原地。

深入Markcook

2.0版本使用了Vuex2.0作為全局的狀態(tài)管理工具,組件之間完全解耦,可以方便地進(jìn)行維護(hù)和定制,其主要目錄結(jié)構(gòu)如下:

|__ index.html
   |__ src
     |__ App.vue
     |__ components
       |__ inputer.vue
       |__ navBar.vue
       |__ outputer.vue
       |__ sideMenu.vue
     |__ main.js
   |__ vuex
     |__ store.js

可以看到,Markcook被拆分成了5個(gè)組件,包括一個(gè)根組件App.vue以及4個(gè)放在/components文件夾下的功能性組件。組件之間的狀態(tài)完全通過/vuex/store.js進(jìn)行管理,其過程可以通過下面的架構(gòu)圖說明:

關(guān)鍵邏輯也是放在store.js里面進(jìn)行,下面簡要分析一些關(guān)鍵功能的實(shí)現(xiàn)原理:

輸入的內(nèi)容進(jìn)入store.js,經(jīng)過處理后實(shí)時(shí)輸出到output.vue,以實(shí)現(xiàn)同步輸入輸出的效果。

每一篇文章都是一個(gè)對象,里面有三個(gè)屬性:idcontentcurrent。在store.js內(nèi)部有一個(gè)articleList數(shù)組,專門用來存放文章對象。每次新建文件,都會往數(shù)組內(nèi)添加一個(gè)新的文章對象,在切換文件的時(shí)候,只需要根據(jù)對應(yīng)的ID切換文章對象的current屬性即可。

articleList: [
  {
    id: createID(),
    content: "Untitled
---
",
    current: true
  }
]

文章的自動(dòng)保存進(jìn)度功能,是通過localStorage實(shí)現(xiàn)的。每一篇文章都在localStorage里面根據(jù)ID分配了位置,在輸入的過程中會實(shí)時(shí)更新對應(yīng)ID下的內(nèi)容。同時(shí)在localStorage里面有一個(gè)叫idArr的對象,專門用于存放文章的ID。文章的自動(dòng)讀取等操作,都是根據(jù)idArr獲取文章ID,再獲取對應(yīng)ID下的文章內(nèi)容來實(shí)現(xiàn)的。

更詳細(xì)的內(nèi)容請直接閱讀源碼,由于篇幅有限,在這里就不作過多的介紹了。

后記

在高速公路上一遍堵車一邊coding的感覺真的很神奇,在完全沒有網(wǎng)絡(luò)沒法google的情況下,反而大大激發(fā)了獨(dú)立思考的能力,真是受益良多。

最想多說的反而是UI設(shè)計(jì)。Material Design是我最喜歡的設(shè)計(jì)風(fēng)格,在上一版本中已經(jīng)有所使用了,但還是丑。這一版雖然和專業(yè)設(shè)計(jì)師比起來還是會有很大差距,但是對我來說,著實(shí)是順眼了很多,也不枉我即使在睡覺也在思考Markcook2.0應(yīng)該長什么樣。

升級到Vue2.0,在開發(fā)體驗(yàn)上并沒有太大的變化,反而是Vuex2.0的使用讓我稍微有些不習(xí)慣,因?yàn)樗团f版本的用法有著比較大的不同。不過得益于文檔的詳細(xì),在仔細(xì)閱讀了文檔以后,遇到的問題基本都能夠得以解決。經(jīng)過一定的開發(fā)摸索,發(fā)現(xiàn)Vuex2.0其實(shí)會更容易理解和使用,因?yàn)樗?b>store,mutationactiongetter都放在了一起,在組件中只需要通過this.$store就能夠?qū)?b>store進(jìn)行操作,邏輯非常清晰易懂,所以也很容易理解為什么我項(xiàng)目中每一個(gè)組件的邏輯都非常簡單,代碼量也非常少。

由于水平有限,項(xiàng)目代碼難免會有錯(cuò)漏和不完美的地方,非常期待能夠得到大家能夠建議,后續(xù)也將繼續(xù)對Markcook進(jìn)行維護(hù)。

謝謝大家~

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/80591.html

相關(guān)文章

  • Vue2.0利用vue-resource上傳文件到七牛

    摘要:年底,公司項(xiàng)目番茄表單的前端部分,開始了從傳統(tǒng)的到的徹底重構(gòu)。上傳流程圖不重要看文字事件觸發(fā)后,先去如果是圖片,可以同時(shí)通過以及將圖片預(yù)覽在頁面上后臺請求七牛的上傳,將拿到的和以及通過傳遞過來的一起到中。 關(guān)于上傳,總是有很多可以說道的。16年底,公司項(xiàng)目番茄表單的前端部分,開始了從傳統(tǒng)的jquery到vue 2.0的徹底重構(gòu)。但是上傳部分,無論是之前的傳統(tǒng)版本,還是Vue新版本,都是...

    lcodecorex 評論0 收藏0
  • async語法升級踩坑小記

    摘要:普通的回調(diào)函數(shù)調(diào)用執(zhí)行后續(xù)邏輯使用了以后的復(fù)雜邏輯獲取到正確的結(jié)果輸出兩個(gè)文件拼接后的內(nèi)容雖說解決了的問題,不會出現(xiàn)一個(gè)函數(shù)前邊有二三十個(gè)空格的縮進(jìn)。所以直接使用關(guān)鍵字替換原有的普通回調(diào)函數(shù)即可。 從今年過完年回來,三月份開始,就一直在做重構(gòu)相關(guān)的事情。 就在今天剛剛上線了最新一次的重構(gòu)代碼,希望高峰期安好,接近半年的Node.js代碼重構(gòu)。 包含從callback+async.w...

    VioletJack 評論0 收藏0
  • Vue 筆記三:Vue2.0與1.0的區(qū)別

    摘要:升級的區(qū)別與的斷層式升級不同,延續(xù)了自己的風(fēng)格。在命名方式和上有一些區(qū)別,掌握它們是你升級整個(gè)項(xiàng)目的關(guān)鍵。以下內(nèi)容都是來源于個(gè)人項(xiàng)目的一些經(jīng)驗(yàn)之談,并非系統(tǒng)性的闡述。總目錄前端經(jīng)驗(yàn)收集器轉(zhuǎn)載自個(gè)人建了前端學(xué)習(xí)群,旨在一起學(xué)習(xí)前端。 升級的區(qū)別 與angular的斷層式升級不同,vue延續(xù)了自己的風(fēng)格。在命名方式和API上有一些區(qū)別,掌握它們是你升級整個(gè)項(xiàng)目的關(guān)鍵。以下內(nèi)容都是來源于個(gè)人...

    Big_fat_cat 評論0 收藏0
  • 體積減少40%、集成步驟精簡50%!友盟社會化組件放大招

    摘要:友盟社會化組件正式上線了此次相比于以往的版本,是一次顛覆性創(chuàng)新是友盟社會化組件自年版本推出后最大的一次版本重構(gòu)升級經(jīng)過近半年的內(nèi)測和開發(fā),現(xiàn)在終于正式上線此次版本升級,本著幫助開發(fā)者省時(shí)省力省事的方針,將主要包體積減少了,刪除了舊版本中所有 友盟社會化組件Android SDK 5.0正式上線了!此次Android SDK5.0相比于以往的版本,是一次顛覆性創(chuàng)新;是友盟社會化組件自20...

    ARGUS 評論0 收藏0

發(fā)表評論

0條評論

最新活動(dòng)
閱讀需要支付1元查看
<