We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
"Great User Experience"
Suspense
React.lazy
Reading the data
Specifying the loading state
if (isLoading) return <Spinner />; return (...); // declarative way ! <Suspense fallback={<Spinner />}> <List pageId={pageId} /> </Suspese>
"design centric idea"
Concurrent Redering : "A behind-the-scenes capability in React that powers features like Suspense"
"what에 집중하라, React는 how에 집중한다 . . "
Xuan Huang
function TodoList({ visibility, themeColor }) { const [todos, setTodos] = useState(initialTodos); const handleChange = todo => setTodos(todos => getUpdated(todos, todo)); const filtered = getFiltered(todos, visibility); return ( <div> <ul> {filtered.map(todo => ( <Todo key={todo.id} todo={todo} onChange={handleChange} /> ))} </ul> <AddTodo setTodos={setTodos} themeColor={themeColor} /> </div> ); }
function TodoList({ visibility, themeColor }) { const [todos, setTodos] = useState(initialTodos) let hasVisibilityChanged, hasThemeColorChanged, hasTodosChanged, memoCache if (hasVisibilityChanged || hasThemeColorChanged || hasTodosChanged) { const handleChange = memoCache[0] || (memoCache[0] = (todo) => setTodos((todos) => getUpdated(todos, todo))) let filtered, jsx_todos if (hasVisibilityChanged || hasTodosChanged) { filtered = memoCache[1] = getFiltered(todos, visibility) jsx_todos = memoCache[2] = ( <ul> {filtered.map((todo) => ( <Todo key={todo.id} todo={todo} onChange={handleChange} /> ))} </ul> ) } else { filtered = memoCache[1] jsx_todos = memoCache[2] } } const jsx_addTodo = hasThemeColorChanged ? (memoCache[3] = <AddTodo setTodos={setTodos} themeColor={themeColor} />) : memoCache[3] return ( <div> {jsx_todos} {jsx_addTodo} </div> ) }
Daishi Kato
props
context
useState
useReducer
useSyncExternalStore
subscribe
getSnapshot
Tafu Nakazaki (SmartHR)
The text was updated successfully, but these errors were encountered:
참고
Sorry, something went wrong.
It's a mechanism for data fetching libraries to communicate to React that the data a component is reading is not ready yet
No branches or pull requests
First Block 👀
Keynote
Suspense
Suspense
는 client에서React.lazy
를 이용하여 코드를 동적으로 로딩하는 경우에 장점이 있었음Reading the data
+Specifying the loading state
"design centric idea"
React.lazy
Concurrent Redering : "A behind-the-scenes capability in React that powers features like Suspense"
"what에 집중하라, React는 how에 집중한다 . . "
React without memo
React Forget
example code
Final Block
React 18 for External Store Libraries
props
context
useState
useReducer
useSyncExternalStore
: React 18에서 도입useSyncExternalStore
subscribe
: get callback, return unsubscribe funcgetSnapshot
: return immutable valueAccessible Japanese Form Components with React
The text was updated successfully, but these errors were encountered: