原创 如何理解vue中的key?

就目前所瞭解的情況,key的作用有以下這些。 v-for遍歷時,用id,uuid之類作爲key,唯一標識節點加速虛擬DOM渲染 響應式系統沒有監聽到的數據,用+new Date()生成的時間戳作爲key,手動強制觸發重新渲染 場景一大

原创 ResizeObserver是什麼?

新來的產品經理,想做一個和qq或者微信聊天一樣的,上下拖動動態改變文本內容框和編輯器佈局的需求。 其實一開始是一頭霧水的,但是通過萬能的mdn,以及充滿智慧的我,最終還是完成了這個需求。其中最核心的還是ResizeObserver這個第

原创 前端String那些事兒

js中的String其實不僅僅是"foo"這樣的字面量字符串。Blob構造函數的入參array,數組元素可以是USVString,到底什麼是USVString讓我很困惑。 除了String外,其實還包括以下幾種類型的String。工作中除

原创 前端唯一標識那些事兒

在做聊天模塊的時候,最初的消息唯一標識是msgId,在業務量小的情況下是可以滿足需求的,毫秒級的唯一衝突是很難出現的。但是當用戶量上升之後,時間戳的這種方案顯然不行。因此需要引入一種新的前端生成唯一標識的方案。 除了時間戳之外,我在公司的

原创 淺析前端上傳

圖片,音頻,視頻等等這幾種常見的資源類型,如果需要從前端上傳到服務端,有幾種方式呢?不妨回顧一下經歷過的項目想一想。 項目上也用到很多上傳文件的地方,七牛雲,阿里雲OSS,訊飛web api上傳都接觸過,所以在這裏做一個記錄,總結一下前端

原创 [Leetcode 622]設計循環隊列

設計你的循環隊列實現。 循環隊列是一種線性數據結構,其操作表現基於 FIFO(先進先出)原則並且隊尾被連接在隊首之後以形成一個循環。它也被稱爲“環形緩衝器”。循環隊列的一個好處是我們可以利用這個隊列之前用過的空間。在一個普通隊列裏,一旦一個

原创 如何理解語義(semantic)化?

前端工程師的招聘中,經常有這樣的要求:對Web 語義化有深刻理解。那麼到底什麼纔是深刻理解Web語義化呢?讀完這篇博客你就知道了。 前端工程師們口裏的web語義化,實際上是指HTML5標籤的語義化。但是這並不完全正確,在W3C標準,有se

原创 如何理解debounce和throttle?

來很高級的詞,節流和防抖,其實節流就是debounce,防抖就是throttle,其實這個也屬於前端性能優化的一部分。 在做遠程搜索時,如果每輸入1個字就調用1次接口,就會頻繁查詢數據庫,假設我們的查詢是"一二三四五",不考慮用戶輸入錯誤

原创 深入理解slot算法和shadow DOM

閱讀完這篇博客你會有以下收穫: slot算法是什麼? shadow DOM是什麼? vue slot機制與w3c web component 規範的 shadow DOM渲染結果有何異同? slot算法 The slotting al

原创 如何理解git rebase?

在merge PR的過程中,rebase and merge會產生衝突,因此需要補充一下Git rebase的知識點。 Understanding Rebase (And Merge) in Git Merging vs. Rebasi

原创 es6必會之let && const

關鍵詞: let ,const, blocking scope ,temporal dead zone,redeclaration,reassignment,immutable,initializer 一直以來都有用let和const,看