発表資料 - React Tokyo ミートアップ #11

1.1K Views

November 14, 25

スライド概要

https://react-tokyo.connpass.com/event/372887/

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

ダウンロード

関連スライド

各ページのテキスト
1.

え?Reactってなんですか? React Tokyo ミートアップ #11 haruki 1

2.

自己紹介 haruki • 「東京オタク大学」でググったらマジで出てくる大学4年 • Reactを使っている会社 新卒入社予定 ◦ 内定者インターンに最近行きました 2

3.

2024年10月 新卒採用面接にて • 「今までPythonやってきました!作品いっぱいあります」 • 「特にWebサイトは累計ユーザー26万人います!」 ◦ Flask (最近は使われないWebフレームワーク) 3

4.

2024年10月 うちではGo, React, Next.js使ってるけど大丈夫? • がんばります! ◦ しらんけど 内定もらった 4

5.

2024年10月 内定者インターンやるけど来る? • 行きます! 5

6.

行った • 新卒採用2年目の会社 • 内定者インターン受け入れは初らしい 「勉強課題」をやることに 6

7.

はじめてのReact 感想 7

8.

わからない1 • Flask (Jinja2): HTML (+ Jinja2特有の文法) • React: TSX, TS 8

9.

わからない1 • Flask (Jinja2): フロント側ではほぼ何もできない 変数を表示する程度 • React: なんかtsファイルでいろいろ処理やってる!? フロントエンドとは 9

10.
[beta]
わからない1
Flask (Jinja2): for, if, 数値の簡単な計算くらいなら書ける
<div>
  <h2>目次</h2>
  <ol>
    <li>
      <a href="#p01">PyCon JP {{ year }}</a>
    </li>
    <li>
      <a href="#p02">React Conf {{ year - 1 }}</a>
    </li>
  </ol>
</div>
10
11.
[beta]
わからない1
React: なにこれ
interface YearStore {
  year: number;
  setYear: (year: number) => void;
}
export const useYearStore = create<YearStore>((set) => ({
  year: 2024,
  setYear: (year) => set({ year }),
}));
const TableOfContents = () => {
  const { year } = useYearStore();
  const items = [
    { id: 'p01', title: `PyCon JP ${year}` },
11
12.

わからない2 エンドポイントどこ • Flask: サーバーサイドレンダリング • React: APIでバックエンドと連携 12

13.
[beta]
わからない2
list.ts
export const API_ENDPOINTS = {
  users: '/api/users',
  userDetail: (id: string) => `/api/users/${id}`,
  posts: '/api/posts',
  login: '/api/auth/login',
} as const;
13
14.
[beta]
わからない2
router.ts の例 (Next.js App Routerの場合)
import { createBrowserRouter } from 'react-router-dom';
export const router = createBrowserRouter([
  {
    path: '/',
    element: <HomePage />,
  },
  {
    path: '/users',
    element: <UsersPage />,
  },
  {
    path: '/users/:id',
    element: <UserDetailPage />,
  },
]);
14
15.

わからない2 どっちなの! • コードが追えない • 原因の切り分けが難しい 15

16.

静的解析のありがたみ • Flask: フロントでの複雑な処理はJavaScriptで書く • React: TypeScriptで書く 16

17.

静的解析のありがたみ • Flask: どこが定義なのか追いづらい • React: VSCodeショートカットで定義に飛べる VSCodeのありがたみ 17

18.

レビューの難しさ • 先輩の中に、欠点だけを無限に指摘する人がいた ◦ (話してみたら優しい人だった) • とはいえ無限に指摘だけされるのは辛い 18

19.

おわり React頑張ります😭 19