loading...
; return{myName}
; }; const AppContent = () => { // TanStack Query const { data: myName, loading } = useQuery({ queryKey: ["myName"], queryFn: () => fetchMyName(), }); if (loading) returnloading...
; return{myName}
; };loading...
; return{myName}
; }; const AppContent = () => { // TanStack Query const { data: myName, loading } = useQuery({ queryKey: ["myName"], queryFn: () => fetchMyName(), }); if (loading) returnloading...
; return{myName}
; }; const AppContent = () => { const myName = use(fetchMyName()); return{myName}
; }; 🚀use()の登場によって、これらより簡単に扱えるようになります。🚀{myName}
; }; 🤨async/awaitは書かなくてええの? Q: 非同期な処理の結果を待つためには async/awaitの記述が必要なはずでは? A: 書かなくていいです // こんな感じの const registerUser = async (email: string) => { const data = await fetchUserData(email); }; const fetchUserData = async (email: string) => { return await axios.$get("/users", { email, }); };{myName}
; }; 🤨async/awaitは書かなくてええの?{myName}
; }; export const App = () => { return ( エラー}> loading...}> // 4 ); }; 1. がレンダリングされる 2. use(fetchMyName()) が実行される 3. use() の中でthrow promise; される 4. 親コンポーネントに伝播し、 で捕ま り、フォールバック(loading... )が表示される 5. 1のPromiseが解決(fullfiled)されると、再 び がレンダリングされ、その時 use(fetchMyName()) は中の値を返す{myName}
; }; export const App = () => { return ( エラー}> loading...}> // 4 ); }; あれ?fetchMyName() が2回呼び出されてない? 1. がレンダリングされる 2. use(fetchMyName()) が実行される 3. use() の中でthrow promise; される 4. 親コンポーネントに伝播し、 で捕ま り、フォールバック(loading... )が表示される 5. 1のPromiseが解決(fullfiled)されると、再 び がレンダリングされ、その時 use(fetchMyName()) は中の値を返す{myName}
; }; export const App = () => { return ( エラー}> loading...}> // 4 ); }; あれ?fetchMyName() が2回呼び出されてない? 1. がレンダリングされる 2. use(fetchMyName()) が実行される 3. use() の中でthrow promise; される 4. 親コンポーネントに伝播し、 で捕ま り、フォールバック(loading... )が表示される 5. 1のPromiseが解決(fullfiled)されると、再 び がレンダリングされ、その時 use(fetchMyName()) は中の値を返す そうなんです