readyfor_redux_study#1 READYFOR株式会社 さんで開催した、Redux 勉強会第一回の資料です。
![Redux の利点を振り返る](https://cdn-ak-scissors.b.st-hatena.com/image/square/dfa1bba93c4493aa322cf5488ccc119a958c5dd1/height=288;version=1;width=512/https%3A%2F%2Ffiles.speakerdeck.com%2Fpresentations%2F815203990c6e4bd689f33bc2aec264db%2Fslide_0.jpg%3F15747646)
Enigmo Advent Calendar 2018の4日目の記事です。 この記事の目的 Enigmoが運営しているBUYMAでは古代から運用しているjQueryの他に、2016年頃から一部ページのフロントエンドをReact/Reduxで構築しています。 私自身もEnigmoに入社してからの約三年間でReact/Reduxアプリケーションの開発に多数携わってきましたので、そこで培った知見を共有したいと思います。 React/Reduxの利点 まずはじめに、ReactとReduxを使うメリットを再確認しておきたいと思います。 それぞれのメリットをしっかりと認識しておくことで、実装する際どう書くか迷ってしまった場合などにそのメリットを最大限活かす選択をすることができます。 Reactの利点 コンポーネント化が容易で再利用性が高い 状態をDOMから分離できる(Stateless) Reduxの
本日 (2019/06/11) React-Redux の version 7.1 がリリースされて、 Redux Hooks が使用できるようになりました。 Redux Hooks によって、connect() を利用しなくても、各コンポーネントとdispatch, state が簡便に利用できるようになります。 サンプルコードです。Action, Reducer 部分は省略です。 ただシンプルにカウンターの数値を増減させるだけのコンポーネントです。 import React from "react"; import { useDispatch, useSelector } from "react-redux"; import { incrementAction, decrementAction } from "./Actions"; const counterSelector = st
Transcript ݱ͔Βಧ͚Δ3FBDUϓϩδΣΫτͷ Έͱվળ� 6*5���ਐԽ͢Δ�3FBDU�KT wTBLJUP !@@TBLJUP@@ � w'SPOU�&OE�&OHJOFFS� w3FBDU XFCQBDL (BUTCZ+4� w&WFOU� w#POpSF�'SPOUFOE� w'SPOUFOE�5SBJOJOH�.FFUVQ� w3FBDU�NFFUVQ� w*OTJEF�'SPOUFOE� ࠂ None *OTJEF�'SPOUFOE��� �����݄��։࠵ʂ✨ IUUQT���JOTJEF�GSPOUFOE�DPN� $'1ืूͷకΊΓ ໌ �݄����࣌�� ·Ͱʂ ·ͩؒʹ߹͏ʂʂʂ ࠂऴྃ ݱҰͭҰͭʹ3FBDUʹؔ͢Δ͕͋Δͱ͓ͬͯΔ ࠙ձͰͦΜͳͰΓ্͕Γ͍ͨ ͷ3FBDUϓϩδΣΫτͷݱͰվળ
2018年11月1日、株式会社メルカリにて「React会」が開催されました。第1回となる今回は、5人のエンジニアがReactにまつわるさまざまなトピックスについてライトニングトークを展開しました。プレゼンテーション「typescript-fsaに頼らないReact × Redux 」に登壇したのは、日本事務器株式会社の甲斐田亮一氏。講演資料はこちら typescript-fsaに頼らないReact × Redux 甲斐田亮一氏:「typescript-fsaに頼らないReact × Redux」というタイトルで始めさせていただきます。僕は日本事務器という会社でフロントエンドエンジニア兼デザイナーをしている甲斐田といいます。 ふだんの業務で、React、TypeScriptでアプリケーションを書いています。 今回話すことですが、最近のTypeScript 2.8以降の機能を使って、React
Redux FAQ: Code StructureTable of ContentsWhat should my file structure look like? How should I group my action creators and reducers in my project? Where should my selectors go?How should I split my logic between reducers and action creators? Where should my “business logic” go?Why should I use action creators?Where should websockets and other persistent connections live?How can I use the Redux
typescript-fsaなど、TypeScriptとReduxを利用する上でサードパーティライブラリが勧められる事があったが、現状のTypeScript 2.9、3.0-rcで普通に書いてみたところ、素reduxでもVSCodeでわりとサクサク補完されるようだ。 追記:色々考えた結果最終型を追加した 本題(古いバージョン) とりあえず最初に考えたのはこんな感じ import { createStore, Reducer, Action, combineReducers, ActionCreatorsMapObject, ReducersMapObject, ActionCreator } from "redux" //// State全体の定義 export type AppState = { counter: number } //// ActionとActionCreatorの定義
概要: Wantedlyの会社ページをリニューアルするに際して、フロントエンドのアーキテクチャを見直しました。この記事では、1) なぜ見直す必要があったのか、2) 主要なアーキテクチャに関する説明、3) その他の新たに導入したスタック、について紹介します。 Wantedlyにはかなり前から会社ページというものが存在しています。元々はその会社の募集がまとまっている程度の役割でしたが、最近ではWantedly Feedのブログ記事を筆頭に、Caseのポートフォリオやメンバーのプロフィールなどの募集以外のコンテンツが増えてきました。さらに検索流入もかなり増えており、会社名で検索した時にその会社のコーポレートサイトより上位に表示されることも珍しくないです。そのため、会社ページの重要性がとても増していました。 その中で、会社ページへの訪問者に素早くかつ深くその会社の魅力を伝えられるようにすることを目
とりあえず関東最速でReactアプリをTypeScriptで作るためのレシピです 注1: このサンプルではReduxを使いますが、もしImmutabilityを必要としないのであればUnduxを代替に検討してみてください! Reduxは関数型エッセンスを守るために非常にファイル数が多くなります。 →【Reduxに疲れた人のための】Undux入門 注2: React+Reduxはデフォルトの最小構成でもファイル数が多く複雑、かつTypeScriptで型を付けても完全に実行時エラーをゼロにするのは不可能です。よりアプリケーションの質を高めるためには、Reduxの起源となったElmの利用を検討してみてください→関東最速でElm+JSなアプリの開発環境を作る create-react-app 最速で作るにはcreate-react-app一択です。--typescriptオプションが利用できるので
reduxをtypescriptで使うならこれを使うしかない。(typescript-fsaがすごい)TypeScriptreduxtypescript-fsa ReduxとTypeScriptっていまいち相性が良くない? TypeScriptとReact.jsって相性が良いですよね。 実際Reactを使うのにTypeScriptとかflowを推奨している気がします。 Reactの学習を始めるのにも補助輪として有効ではないかと思います。 その辺は 古いですが 「TypeScriptを使ってreactのチュートリアルを進めると捗るかなと思った。」 を見ていただければご理解いただけると思います。 さて、しかしながらです。この調子でReduxもTypeScriptで学習初めたら捗るかと思いましたが 上手く行きませんでした。 理由の一つとして reduxにおいてAction は概念として重要なもの
Reduxはとりあえず使えるようになった後の情報が少ないように感じています。よく出回っているサンプルコードは「Real World 〜」のような名前がついていたとしても、あくまで雰囲気を味わうために用意されたものに毛が生えた程度で、現実に起こる問題に対する回答や指針を示しているわけではありません。業務で使うことを検討するのであれば、プロダクトの成長と共にどうやってスケールしていくかイメージできないと導入に踏み切れないですよね。本稿ではサンプルコードより大きな規模で開発していくために、Reduxにおけるコンポーネントの再利用について紹介します。 実現したいこと コンポーネントの再利用によってどのようなことを実現したいのかイメージしてもらうため、馴染みのあるアプリケーションの機能を具体例として挙げてみます。 Gmailで名前にマウスオーバーしたときに出るプロフィール情報 プロフィール画像の表示
こちらの記事を読んで。React&Redux でアプリを作る上で基本的だが重要なことが書かれていたので、後で見返すためにメモ。 なお本文は原文記事の完全な翻訳ではなくポイントだけかいつまんで自分の考えも交えたものです。 また、まとめさせていただく上で著者の許諾を得ています。 (拙い英語でおそるおそる訪ねたら流暢な日本語で快諾いただいてびっくり) もちろん、かまいませんよ!よろしければ, 私のサイトにリンクしていただけませんか?— Joe Ellis (@notjoeellis) 2017年6月26日 State state の形を計画(設計)する(Plan your state shape) state オブジェクトの構造をきちんと設計することは非常に重要。 こういった構造にすればいい!という唯一解はないが、設計の手助けとなるチェックリスト(質問リスト)がこちら。 users, accou
In the Concur App Center team, we’ve been working with React + Redux for a few months now, having switched over from Flummox. We’ve been bucking the file structure trend in favor of the ducks approach, and have been happy with this decision. The common way I see of organizing redux is: |_ containers |_ constants |_ reducers |_ actionsI find this method to be a bit cumbersome. It’s not terrible, bu
An update (2018-07-06) This guide is now out of date. I finally took the time to update this guide based on the feedbacks I’ve received, making everything up to date with the latest version of React, Redux, and TypeScript, as well as introducing some neat new tricks. Click here to read it. I've been writing a lot of code in TypeScript lately. And alongside that, I've also been writing a lot of Rea
まだアクションクリエイターを自分で書いているの? reduxとflowtypeを使ってフロントエンドアプリケーションを構築していると、ボイラープレートが多く、面倒だと感じることがありませんか? しかし、もはや、このAST時代の前には過去の悩みでしかありません。 型を書く。それが全てです。 型を書いて、定数を書いて、アクションクリエイターを書いて、一つ変更したら全て変更して、もしくはなんらかのハックを行って型付けして、なんてものは過去のことです。 これからは、アクションクリエイターの作成に5秒以上時間をかけたら怠惰でありましょう。そして、これはs2sの1プラグインでしかありません。 プラグインを組み合わせると以下のようなこともできます。 s2s (Source to Source) これを実現している仕組みをSource to Source(s2s)といいます。 ソースコードからソースコード
TypeScriptで型の恩恵を受けられるようにReduxアプリケーションのコードを書こうとすると、同じようなことを繰り返し書かなければならないところがある。顕著なのはAction周りだと思う。同じことを思う人が多いのか、既に楽に書くためのモジュールがたくさんある(ts-action, typescript-fsa, typesafe-actions, などなど)けど、Middlewareが必要だったり、Reducerの書き方を変えなければならなかったりしてどれもしっくりこない。 もっとシンプルに解決できないかなと思ってモジュールを作ってみた。実装としてはTypeScriptで14行、提供するのは2つのAPIのみ。 rikuba/typed-action-class 以下、Redux Async Exampleの例を借りて、pureにTypeScriptで書いたコードとこのモジュールを使っ
この資料のアレ。 mizchi.hatenablog.com Reducer は単なる (State, Action) => State の関数で、redux.combineReducers は複数の reducer を名前空間でマップした新しい reducer にするもの。 Rx分かる人、Redux分かる人向けに、 redux.combineReducers を実装して、Rx.Observable.scan で reducer として実際に動くコードを書いた。 const Rx = require('rx') const combineReducers = reducerMap => { const initialState = Object.entries( reducerMap ).reduce((acc, [key, reducer]) => { return Object.ass
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く