原创 React 源碼閱讀-11_041

React 源碼閱讀-11 createRef // ReactTypes定義的 react 類型 import type {RefObject} from 'shared/ReactTypes'; // an immutable o

原创 React 源碼閱讀-10_041

React 源碼閱讀-10 ReactBaseClasses 這個文件是export出了Component, PureComponent export {Component, PureComponent}; 源碼+註釋 /** * Cop

原创 React 源碼閱讀-9_040

React 源碼閱讀-9 繼續閱讀react 16.8.6源碼 之前寫的就是相當於的一個學習的筆記,雖然工作中的技術都是 react 相關,但是80%都是一些平常很少涉及到的,導致自己對 react的認識相對比較片面.一些 react的ap

原创 React 源碼閱讀-8_039

React 源碼閱讀-8 ReactHooks Hook 是 React 16.8 的新增特性。它可以讓你在不編寫 class 的情況下使用 state 以及其他的 React 特性。 import { useCallback, u

原创 React 源碼閱讀-7_038

React 源碼閱讀-7 memo React.memo 爲高階組件。它與 React.PureComponent 非常相似,但它適用於函數組件,但不適用於 class組件。 const MyComponent = React.memo(f

原创 React 源碼閱讀-6_037

React 源碼閱讀-6 lazy React.lazy 函數能讓你像渲染常規組件一樣處理動態引入(的組件)。 React.lazy 接受一個函數,這個函數需要動態調用 import()。它必須返回一個 Promise,該 Promise

原创 React 源碼閱讀-5_036

React 源碼閱讀-5 源碼 import {REACT_FORWARD_REF_TYPE, REACT_MEMO_TYPE} from 'shared/ReactSymbols'; import warningWithoutStac

原创 JavaScript 異步編程_035

JavaScript 異步編程 一道面試題 for(var i = 0; i < 3; i++) { setTimeout(function() { console.log('timeout' + i); })

原创 React-SVG圓環_034

React 圓環 SemiCircle 代碼 import React from "react"; class SemiCircle extends React.Component { constructor(props) {

原创 React 源碼閱讀-4_033

React 源碼閱讀-4 上下文 Context 上下文Context 提供了一種通過組件樹傳遞數據的方法,無需在每個級別手動傳遞 props 屬性。 何時使用 Context Context 旨在共享一個組件樹內可被視爲 “全局” 的數

原创 React 源碼閱讀-3_032

React 源碼閱讀-3 React.Component class Welcome extends React.Component { render() { return <h1>Hello, {this.props.name

原创 React 源碼閱讀-2_031

React 源碼閱讀-2 在典型的React數據流中,props是父組件與其子組件交互的唯一方式。要修改子項,請使用new props 重新呈現它。但是,在某些情況下,需要在典型數據流之外強制修改子項。要修改的子項可以是React組件的實例

原创 代碼規範_030

代碼規範 git commit規範 每次提交 git commit的時候總是有點難受,不知道怎麼寫? 還有不同人寫的風格完全不一樣, 1.安裝Commitizen npm install -g commitizen https://gi

原创 LeetCode-01-兩數之和_029

LeetCode-01-兩數之和 題目描述 給定一個整數數組和一個目標值,找出數組中和爲目標值的兩個數。 你可以假設每個輸入只對應一種答案,且同樣的元素不能被重複利用。 ::: tip給定 nums = [2, 7, 11, 15], ta

原创 MacOS配置 iTerm2,oh-my-zsh,zsh_028

MacOS配置 iTerm2,oh-my-zsh,'zsh' zsh Mac 自帶的 zsh終端 cat /etc/shells 修改系統默認的終端爲zsh # 更改終端 chsh -s /bin/zsh # 確認是否更改成功 ech