原创 如何避免向下傳遞迴調?

React我們已經發現大部分人並不喜歡在組件樹的每一層手動傳遞迴調。儘管這種寫法更明確,但這給人感覺像錯綜複雜的管道工程一樣麻煩。在大型的組件樹中,我們推薦的替代方案是通過 context 用 useReducer 往下傳一個 disp

原创 面試技巧(必看!)

雖然疫情讓這個環境變得額外清涼,但是要找工作的人依然沒有放慢腳步,下面準備了幾個常見的面試問題,並給出了回答的思路,也許可以幫到你。你爲什麼從上一家公司離職?正確示範:原則:客觀陳述,保持語氣,不涉及抱怨,不進行詆譭,表達感恩。比如:其

原创 自己構建React項目

如果沒有create-react-app,我們應該如何構建項目呢?今天讓我們一起通過自己的方式打包react項目吧!第一步創建文件mkdir react-boiler-plate cd react-boiler-plate 然後初始化n

原创 超長列表的性能優化

不停的往頁面中插入元素,記錄JS執行時間和瀏覽器渲染時間<body> <div id="app"></div> <script> let timer = Date.now() let total = 100;

原创 談談你對閉包的認識

關於回答這個問題,我們可以從四個方面入手:1.什麼是閉包 2.閉包解決了什麼問題 3.閉包的應用場景 4.閉包的缺點什麼是閉包一句話解釋就是可以訪問另一個函數作用域中變量的函數。然後解釋一下這句話,在JS的函數執行會形成一個作用域,執行

原创 關於JS代碼的優化

避免二次解析Function 構造函數可以接收任意數量的參數,但最後一個參數始終都被看成是函數體,而前面的參數則枚舉出了新函數的參數。來看下面的例子: var sum = new Function(“num1”, “num2”, “re

原创 Web Worker 你知道嗎?

自 JavaScript 誕生以來,還沒有辦法在瀏覽器 UI 線程之外運行代碼。Web Worker 線程 API 改變了這種狀況,它引入一個接口,使代碼運行而不佔用瀏覽器 UI 線程的時間。Web Worker 線程對網頁應用來說是一

原创 談談flex佈局

在面試中常考的就包含flex佈局,通常會提問面試者談談flex佈局的理解,以及怎麼設置水平居中,垂直居中,如何實現兩欄佈局或者三欄佈局等等。首先得先說出flex佈局的概念,flex的結構組成,其次講自己用到最多的flex屬性,最後講自己

原创 金三銀四面試題彙總

往期已經推送了很多篇關於面試的文章,今天統一整理一下,方便麪試複習!面試題 三道題就能考察你對Vue掌握了多少!分析幾道大廠算法題高階前端面試題冬季面試題上手幾道面試題給你一份大廠面試題你不知道的面試題大廠的面試題前端面試題一份面試題這

原创 移動端開發常見問題

1、iOS無法識別的時間格式 2020-03-15 9:30:30 ,在時間中不要使用 - 短橫線,當傳入new Date('2020-03-15 9:30:30') 會發生報錯,可以使用 / 斜槓分隔,而安卓則都可以識別。2、iOS微

原创 Vue中常見的性能優化

編碼優化1. 不要將所有的數據都放到 data 中,data 中的數據都會增加 getter 和 setter,又會收集watcher,這樣還佔內存。不需要響應式的數據我們可以定義在實例上。<template> <div class

原创 瀏覽器UI線程更新機制

總的來說,大多數瀏覽器有一個單獨的處理進程,它由兩個任務所共享:JavaScript 任務和用戶界面更新任務。每個時刻只有其中的一個操作得以執行。也就是說當 JavaScript代碼運行時用戶界面不能對輸入產生反應,反之亦然。或者說,當

原创 在堆棧中查找最大值

最近,我與一家公司進行了電話面試,並被問到一個有關堆棧的問題,我不知道該如何正確解決。這促使我加深了對堆棧的瞭解。我被要求編寫max函數在堆棧中找到最大值。堆棧是一種數據結構,其中新的項目添加到頂部,項目也從頂部刪除。這稱爲後進先出(L

原创 將 React 作爲 UI 運行時

  宿主樹大多數教程把 React 稱作是一個 UI 庫。這是有道理的,因爲 React 就是一個 UI 庫。正如官網上的標語所說的那樣—構建用戶界面的庫。但是本篇文章將以一種不同的方式來講述 React — 因爲它更像是一種編程運行時

原创 使用useEffect常見問題!

如何用useEffect模擬componentDidMount生命週期?雖然可以使用 useEffect(fn, []),但它們並不完全相等。和 componentDidMount 不一樣,useEffect 會捕獲 props 和st