原创 一張圖理清 Vue 3.0 的響應式系統

本文首發於我的博客:《一張圖理清 Vue 3.0 的響應式系統》 隨着 Vue 3.0 Pre Alpha 版本的公佈,我們得以一窺其源碼的實現。Vue 最巧妙的特性之一是其響應式系統,而我們也能夠在倉庫的 packages/reacti

原创 探索如何使用 JSON.stringify() 去序列化一個 Error

最近在做 Node 服務端需求的時候,遇到了幾次服務端報錯的問題。打 log 發現均是一些 Error,但是它們都沒法很好地透傳給前端瀏覽器,出現問題只能查看服務端機器的日誌,調試起來非常不方便。思考了一下,服務端的內容都是通過 JSON

原创 GraphQL 項目中的前端 mock 方案

在使用 GraphQL (以下簡稱 gql)的前端項目中,往往需要等待後臺同學定義好 Schema 並架設好 Playground 以後才能進行聯調。如果後臺同學阻塞了,前端只能被動等待。如果對於 gql 項目來說也能夠和 REST 一樣

原创 來自 Vue 3.0 的 Composition API 嚐鮮

前段時間,Vue 官方釋出了 Composition API RFC 的文檔,我也在收到消息的第一時間上手嚐鮮。 雖然 Vue 3.0 尚未發佈,但是其處於 RFC 階段的 Composition API 已經可以通過插件 @vue/c

原创 項目中使用 TypeScript 的一些感悟

上週發佈了一款名爲 Smartour 的工具,是完全採用 TypeScript (以下簡稱 ts)來開發的。拋開以前做業務的時候的不完全使用,這次實踐可以算是我第一次真正意義上的使用 ts。由於寫法上的不同,以及對不熟悉事物的新鮮感,在這

原创 Smartour——讓網頁導覽變得更簡單

在遇到網頁內容有着較大調整的時候,往往需要一個導覽功能去告訴用戶,某某功能已經調整到另外一個位置。比較常規的辦法是添加一個蒙層,高亮顯示被調整的區域,然後通過文字介紹去完成引導。我們把這個功能稱爲“導覽”,而 Smartour 則把這個導

原创 在小程序中實現 Mixins 方案

原文來自我的博客:https://jrainlau.github.io/#/... 在原生開發小程序的過程中,發現有多個頁面都使用了幾乎完全一樣的邏輯。由於小程序官方並沒有提供 Mixins 這種代碼複用機制,所以只能採用非常不優雅的複

原创 詳解 Github App 的玩法

之前在使用 Github issues 搭建博客平臺的時候,研究過一番如何取得 Github 授權並調用 API 的辦法。後來選擇了較簡單的賬號密碼和 Token 的方法。但是有讀者反饋這樣的操作依然稍顯麻煩,且在第三方的頁面輸入賬號密碼

原创 爲什麼我選擇用 Github issues 來寫博客

對於愛寫東西的人來說,挑一個合適的博客平臺是非常重要的。而作爲一個 Web 開發者,我們肯定都希望能夠擁有一個高度定製化的博客平臺,用以展示我們獨一無二的個性以及記錄長久以來的學習工作等。與此同時,我們也希望這個平臺可以讓我們方便地發佈內

原创 基於 Github API 的圖牀 Chrome 插件開發全紀錄

最近基於 Github API 開發了一款圖牀 Chrome 插件 Picee,現在已經開源並上架 Chrome 應用商店。當中的過程涉及到一些有趣的知識點,故將其記錄下來。 Github地址:https://github.com/jra

原创 DIY 一個 Vuex 持久化插件

在做 Vue 相關項目的時候,總會遇到因爲頁面刷新導致 Store 內容丟失的情況。複雜的項目往往涉及大量的狀態需要管理,如果僅因爲一次刷新就需要全部重新獲取,代價也未免太大了。 那麼我們能不能對這些狀態進行本地的持久化呢?答案是可以的,社

原创 前端與編譯原理——用JS寫一個JS解釋器

說起編譯原理,印象往往只停留在本科時那些枯燥的課程和晦澀的概念。作爲前端開發者,編譯原理似乎離我們很遠,對它的理解很可能僅僅侷限於“抽象語法樹(AST)”。但這僅僅是個開頭而已。編譯原理的使用,甚至能讓我們利用JS直接寫一個能運行JS代碼的

原创 搭建CocosCreator組件庫

在近期使用CocosCreator(以下簡稱CC)開發HTML5遊戲的工作中,發現公司許多遊戲都有着相同的元素,比如倒計時條、結算頁面等等。在早期的開發中,我們並沒有摸索到複用的辦法,只能在不同的遊戲項目中從頭開始寫。隨着需求越來越多,重複