Skip to content

Instantly share code, notes, and snippets.

View sangkukbae12's full-sized avatar
🎯
Focusing

ben sangkukbae12

🎯
Focusing
View GitHub Profile
Country ISO_A2 ISO_A3
Afghanistan AF AFG
Albania AL ALB
Algeria DZ DZA
Andorra AD AND
Angola AO AGO
Anguilla AI AIA
Antigua and Barbuda AG ATG
Argentina AR ARG
Armenia AM ARM
@sangkukbae12
sangkukbae12 / render_prop.js
Last active April 27, 2020 22:40
react render prop
import React, { Component } from "react";
class ProductData extends Component {
state = {
products: []
};
componentDidMount() {
getProducts().then(products => {
this.setState({
import React, { Component } from "react";
const withProductData = WrappedComponent =>
class ProductData extends Component {
state = {
products: []
};
componentDidMount() {
getProducts().then(products => {
@sangkukbae12
sangkukbae12 / react_context_pattern.js
Created April 27, 2020 22:51
react context pattern
const MyContext = React.createContext(defaultValue);
<MyContext.Provider value={someValue}>
const value = useContext(MyContext);
// app.js
import React, {useState} from 'react';
import Comp1 from './comp1';
import { UserProvider } from './user'
import './App.css';
@sangkukbae12
sangkukbae12 / react_mobx.js
Created April 27, 2020 22:57
react mobx - best practices
// The stores represent the ui state
class SearchStore {
@observable searchText;
@action
setSearchText = (searchText) => {
this.searchText = searchText
}
}
@sangkukbae12
sangkukbae12 / mobx_observable_actions.js
Created April 27, 2020 23:03
react mobx obervable with actions
// Bound Actions
import { observable } from "mobx";
class Counter {
@observable count = 0;
@action.bound
increment() {
this.count++;
}
}
const counter = new Counter();
@sangkukbae12
sangkukbae12 / redux_over_context.js
Created April 27, 2020 23:11
react redux over context
// EXAMPLE WITH CONTEXT
import React, {useContext, useState} from 'react';
const AppContext = React.createContext(null);
const ContextProvider = ({children}) => {
const [counter, setCounter] = useState(0);
const contextValue = {
counter,
setCounter
@sangkukbae12
sangkukbae12 / redux_saga.js
Created April 27, 2020 23:25
react redux-saga
// Generators
// define
function* generator(i) {
yield i;
yield i + 10;
}
// init
const gen = generator(10);
// use
@sangkukbae12
sangkukbae12 / javascript_promise.js
Created April 27, 2020 23:55
javascript promise practices
// A simple promise that resolves after a given time
const timeOut = (t) => {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve(`Completed in ${t}`)
}, t)
})
}
// Resolving a normal promise.
timeOut(1000)
@sangkukbae12
sangkukbae12 / optimize-react-re-renders.js
Created May 12, 2020 04:15
One simple trick to optimize React re-renders
// codesandbox: https://codesandbox.io/s/react-codesandbox-o9e9f
import React from "react";
import ReactDOM from "react-dom";
function Logger(props) {
console.log(`${props.label} rendered`);
return null; // 여기서 반환되는 값은 부적절하다...
}