React 學習與實踐資料索引從屬於筆者的 Web 開發基礎與工程實踐中的閱讀學習資料工具集錦系列,本文內容是筆者在學習與實踐 React 以及準備每週的前端清單系列時候閱讀的文章或者接觸到的工具積累。注意,部分英文文章需要翻牆,請自備梯子。
React 學習與實踐資料索引
鑑於 React 技術棧一直也在迅速發展,本文目前以 React v15.5.4 、React Router V4 版本為準,筆者會隨時更新本文內容,移除過時的連結並且新增新的連結。另外本文相關的部分友鏈列舉如下:
如果想及時瞭解前端技術發展,掌握一手資訊,建議閱讀前端每週清單系列。
Overview: 概覽
-
2014-Removing-User-Interface-Complexity,-or-Why-React-is-Awesome
-
2016-React Howto: Throughout this document, I’ll assume you’ve built a web page with HTML, CSS and JavaScript.
Principle: 設計理念
-
2016-Thinking in React: One of the many great parts of React is how it makes you think about apps as you build them. In this document, we`ll walk you through the thought process of building a searchable product data table using React.
-
2017-react-aha-moments: One of my main goals whenever I’m teaching or writing technical content is to maximize “aha” moments. An “aha” moment is a moment of sudden insight or clarity; when the subject matter suddenly makes sense. We’ve all experienced them and the best teachers I know are able to understand their audience and adapt the lesson in order to maximize these moments.
Case Study: 案例
-
2016-Moving Airbnb Search to React: Using experiments to tackle a large refactor with confidence
Book: 書籍
-
2016-React In-depth: An exploration of UI development【Book】:Our goal with this GitBook is to document our process, share our research and try to organize our experiences into a single living document. Too be honest, this is a pretty lofty goal. We may not achieve this goal, but hopefully we can get some helpful thoughts down.
-
2016-SurviveJS – React【Book】: This book shows you how to build a little Kanban application using React. During the process you will learn the basics and will be able to take the skills to your own projects.
-
2017-React Bits【Book】: A compilation of React Patterns, techniques, tips and tricks.
-
2017-Learning React, 1st Edition【Book】: If you want to learn how to build efficient user interfaces with React, this is your book. Authors Alex Banks and Eve Porcello show you how to create UIs with this small JavaScript library that can deftly display data changes on large-scale, data-driven websites without page reloads. Along the way, you’ll learn how to work with functional programming and the latest ECMAScript features.
-
2017-Mastering Full-Stack React Web Development【Book】: Learn how to create dynamic full-stack applications with ReactJS and other leading JavaScript tools – smarter web development starts here.
-
2017-React Design Patterns and Best Practices【Book】: Build modular applications that are easy to scale using the most powerful components and design patterns that React can offer you right now About This Book.
Course & Conf: 視訊教程與會議
-
2017 React 大會:2017 年 React Conf 於 3 月 13 日、14 日成功舉辦,會上來自世界各地的開發者就 React Fiber、Flow、Performance、React Native 等多個主題發表了演說與討論,推薦選擇自己喜歡的演講視訊觀看。
Resource: 其他資源集錦
-
Awesome-React: A collection of awesome things regarding React ecosystem.
-
React/Redux Links: Curated tutorial and resource links I`ve collected on React, Redux, ES6, and more
Tutorial: 入門教程
Concept: 概念
Coding: 基礎編碼
-
2016-A Primer on the React Ecosystem Serials: I thought I’d share what I’ve learned so far through a primer. Over three parts, I’m going to show you how to set up an environment for React app development, create React components and have them respond to data changes, manage app state with Redux.
-
2017-Simple React Development in 2017: The goal of this guide is to showcase how easy it can be to start modern React development.
-
2017-Create a realtime football voting app using React, Redux, React-Router-v4 and Firebase: In this series of tutorials, we’ll be creating a football voting app using React, Redux, Redux-Saga, React-Router v4, and Firebase. In this first part, we will setup the project. We’re going to use create-react-app to scaffold the initial project structure, tweak it a bit, and then add the necessary libraries that we’ll be using.
-
2017-How to Build a ToDo App Using React, Redux, and Webpack: In this tutorial I’m going to show you how to create a simple “ToDo” app using React, Redux, a little bit of Node, and Cosmic JS.
Component: 元件開發
Syntax: 語法
-
2017-React Lifecycle Methods- how and when to use them: The above is the life of a React component, from birth (pre-mounting) and death (unmounting).
Props
State
Context
DOM
LifeCycle
Style: 樣式
CSS-in-JS
-
2017-CSS in JavaScript: The future of component-based styling
-
2017-Stop using CSS in JavaScript for web development: This article lists common misconceptions (myths) and the existing CSS solutions to those problems.
Animation
-
2017-react-move【Project】: Beautifully and deterministically animate anything in React.
-
2017-React Animations 101【Series】: In this post on react animations 101, we will explore a few examples and why CSS transition are a good fit for the navigation bar.
-
How to build animated microinteractions in React: Every function in JavaScript has a closure. And this is one of the coolest features of the JavaScript language. Because without closures, it would be hard to implement common structures like callbacks or event handlers.
React Router
-
2017-Build your own React Router v4: this has helped you create a better mental model of what’s happening in React Router while also helping you to gain an appreciation for React Router’s elegance and “Just Components” API.
-
2017-Universal JavaScript Apps with React Router 4: How to use the latest version of React Router both on the server side and the client side
StyleGuide & Design Pattern: 樣式指南與設計模式
-
2016-React Patterns: Patterns for React Developers
-
2017-10 React mini-patterns: Over the last few years, I’ve worked on a handful of decent-sized React projects, and many, many pint-sized ones. Throughout this magical journey, a number of patterns have come up that I find myself repeating again and again.
-
Share Code between React and React Apps using Higher Order Components
Functional React
-
2017-Functional setState is the future of React: Declare state changes separately from the component classes.
HOCs: 高階元件
-
2017-Why you should keep your react components pure by using HOCs: In this article I show how decomposing state from the presentational layer can both reduce complexity and promote code re-use with some React examples— a win-win situation helping to tame the challenges of developing SPAs. Although I’m using React, the lessons are universal and can apply to any framework.
-
Functional React Series — Part 1: Get your App outta my Component
Code Splitting: 程式碼分割
-
2017-Introducing React Loadable: Component-centric code splitting and loading in React
Performance: 效能優化
-
React Office Site —— Optimizing Performance: For many applications, using React will lead to a fast user interface without doing much work to specifically optimize for performance. Nevertheless, there are several ways you can speed up your React application.
-
2017-Keep Your React Redux Healthy, Performance Optimization Story: I am here to be honest about React optimization.
-
2017-React at Light Speed: Lessons in optimizing performance at Vixlet
-
2017-Our Best Practices for Writing React Components: When I first started writing React, I remember seeing many different approaches to writing components, varying greatly from tutorial to tutorial. Though the framework has matured considerably since then, there doesn’t seem to yet be a firm ‘right’ way of doing things.
-
[ProReact中關於效能的章節]()
-
How to Benchmark React Components: The Quick and Dirty Guide
-
React Performance Optimization: Performance optimization can be a big pain with any language. Especially when you are optimizing your app and you have no idea what to optimize. React has some really nice tools to do this, I will be talking about one specifically that will make your life a lot better.
Tool: 工具
-
why-did-you-update【Project】: Puts your console on blast when React is making unnecessary updates.
Production: 生產環境
Test: 測試
-
2017-Testing React Applications【Series】:With React and the ecosystem of testing tools that have emerged around it, it’s finally possible to build robust, scalable tests that provide strong guarantees on code correctness.
Server Side Rendering: 服務端渲染
-
2017-Introducing Rapscallion【Project】: a new approach for server-side rendering React applications.
Preact
Reconciliation: 調和
Virtual DOM
-
2017-react diff 原理:React diff 作為 Virtual DOM 的加速器,其演算法上的改進優化是 React 整個介面渲染的基礎,以及效能提高的保障,同時也是 React 原始碼中最神祕、最不可思議的部分,本文將剖析 React diff 的不可思議之處。
Stack Reconciler
-
2017-react-reconciler-demo【Project】: A simple implementation of React`s stack reconciler. This is much different from the real implementation, but demonstrates the concepts.
Fiber
-
2017-React Fiber Architecture: A description of React`s new core algorithm, React Fiber.
-
2017-React Fiber 是什麼:React Fiber 這個大改變 Facebook 已經摺騰兩年多了,剛剛結束不久的 React Conf 2017 會議上,Facebook 終於確認,React Fiber 會搭上 React 下一個大版本v16的順風車釋出。
-
2017-React 新引擎 React Fiber 究竟要解決什麼問題?:Facebook 正在以流行的 JavaScript 框架 React 為基礎開發一個全新的架構。這個名為 React Fiber 的全新設計改變了檢測變更的方法和時機,藉此可改進瀏覽器端和其他渲染裝置的響應速度。 這一 全新架構 最初已於 2016 年 7 月公開發布,其中蘊含著過去多年來 Facebook 不斷改進的工作成果。該架構可向後相容,徹底重寫了 React 的協調(Reconciliation)演算法。該過程可用於確定出現變更的具體時間,並將變更傳遞給渲染器。( https://parg.co/btw )
-
2017-React 新引擎 React Fiber 究竟要解決什麼問題?:Facebook 正在以流行的 JavaScript 框架 React 為基礎開發一個全新的架構。這個名為 React Fiber 的全新設計改變了檢測變更的方法和時機,藉此可改進瀏覽器端和其他渲染裝置的響應速度。 這一 全新架構 最初已於 2016 年 7 月公開發布,其中蘊含著過去多年來 Facebook 不斷改進的工作成果。該架構可向後相容,徹底重寫了 React 的協調(Reconciliation)演算法。該過程可用於確定出現變更的具體時間,並將變更傳遞給渲染器。
Pattern Library: 模式庫
-
Material-UI: A Set of React Components that Implement Google`s Material Design.
-
Ant Design: An enterprise-class UI design language and React-based implementation.
List
Table
-
Table:react-datasheet