I started using React 3.5 years ago, and I still love it. It was such a well-designed solution that not much has changed since then, only superficial stuff like naming. What I learned then is still wholly applicable today because it's such a good idea (although now you can choose from many other libraries). On top of that, we now benefit from an entirely new architecture (fiber) without changing much.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var HashTable = function() { | |
this._storage = []; | |
this._count = 0; | |
this._limit = 8; | |
} | |
HashTable.prototype.insert = function(key, value) { | |
//create an index for our storage location by passing it through our hashing function | |
var index = this.hashFunc(key, this._limit); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
'use strict'; | |
function BinarySearchTree() { | |
this.root = null; | |
} | |
BinarySearchTree.prototype.insertNode = function (val) { | |
var node = { | |
data : val, |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function AHashtable(size) { | |
this.table = this.init_table(size); | |
} | |
AHashtable.prototype.set = function(key, value) { | |
var self = this; | |
var index = self.jenkins_hash(key, self.table.length); | |
self.table[index] = value; | |
}; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function getListMiddle(head){ | |
let slow = head; | |
let fast = head; | |
let moveBoth = false; | |
// to get second element, in case of two mid-nodes, use 'fast' instead of 'fast.next' | |
while(fast.next){ | |
if(moveBoth){ | |
slow = slow.next; | |
fast = fast.next; |
This is the base of all projects and it will include the foundation for all potential react-based projects in Reason.
This base package should include a ReasonReact api to promote collaboration and familiarity with people using a ReasonReact, and for the modern world of React this should also include a Hooks api that currently revery uses.
All blocks in Jsx are of type React.reactElement
. This reactElement should represent:
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
type FiberFunction<Args extends any[], Return> = ( | |
cell: CellFunction | |
) => (...args: Args) => Return; | |
type FiberInstance<Args extends any[], Return> = ( | |
...args: Args | |
) => [Return, FiberInstance<Args, Return>]; | |
type FiberFactory = <Args extends any[], Return>( | |
fiber: FiberFunction<Args, Return>, |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const express = require("express"); | |
const app = express(); | |
var session = require('express-session'); | |
const fetch = require('node-fetch'); | |
const clientID = process.env.CLIENT_ID; | |
const clientSecret = process.env.CLIENT_SECRET; | |
async function getAccessToken(code, client_id, client_secret) { | |
const request = await fetch("https://github.com/login/oauth/access_token", { |
- Документация по
React.memo
: https://reactjs.org/docs/react-api.html#reactmemo - Документация по
useState
: https://reactjs.org/docs/hooks-reference.html#usestate - Исходный код
ReactFiberBeginWork
: https://github.com/facebook/react/blob/56e9feead0f91075ba0a4f725c9e4e343bca1c67/packages/react-reconciler/src/ReactFiberBeginWork.new.js#L3219 - React.js pure render performance anti-pattern: https://medium.com/@esamatti/react-js-pure-render-performance-anti-pattern-fb88c101332f
- Avoiding unnecessary renders with React context: https://frontarm.com/james-k-nelson/react-context-performance/
- The Secret parts of React New Context API: https://medium.com/@koba04/a-secret-parts-of-react-new-context-api-e9506a4578aa
- Why Did You Render: https://www.npmjs.com/package/@welldone-software/why-did-you-render
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
|- (p -> r) | (q -> r) -> (p & q -> r) | |
--- | |
(p -> r) | (q -> r) |- p & q -> r | |
--- | |
(p -> r) | (q -> r), p & q |- r | |
--- | |
(p -> r) | (q -> r), p, q |- r | |
---1-1 | |
p -> r, p, q |- r | |
--- |
OlderNewer