Create React App does not provide watching build mode oficially (#1070).
This script provides watching build mode for an external tool such as Chrome Extensions or Firebase app.
Create a React app.
Put the script into scripts/watch.js
.
Create React App does not provide watching build mode oficially (#1070).
This script provides watching build mode for an external tool such as Chrome Extensions or Firebase app.
Create a React app.
Put the script into scripts/watch.js
.
import * as React from 'react' | |
import * as Redux from 'redux' | |
import { MyReduxState } from './my-root-reducer.ts' | |
export interface OwnProps { | |
propFromParent: number | |
} | |
interface StateProps { |
React recently introduced an experimental profiler API. After discussing this API with several teams at Facebook, one common piece of feedback was that the performance information would be more useful if it could be associated with the events that caused the application to render (e.g. button click, XHR response). Tracing these events (or "interactions") would enable more powerful tooling to be built around the timing information, capable of answering questions like "What caused this really slow commit?" or "How long does it typically take for this interaction to update the DOM?".
With version 16.4.3, React added experimental support for this tracing by way of a new NPM package, scheduler. However the public API for this package is not yet finalized and will likely change with upcoming minor releases, so it should be used with caution.
React recently introduced an experimental profiler API. This page gives instructions on how to use this API in a production release of your app.
Table of Contents
React DOM automatically supports profiling in development mode for v16.5+, but since profiling adds some small additional overhead it is opt-in for production mode. This gist explains how to opt-in.
Related discussion on bvaughn/react-window/issues/85.
The specific API feature this Gist is exploring is the itemData
prop. This prop provides a way for a component to pass "contextual" list data to an item renderer without adding the overhead of using context. In most cases, a single value is passed (e.g. an array/list) like so:
function ComponentThatRendersAListOfItems({ itemsArray, ...rest }) {
render() {
// Pass items array to the item renderer component as itemData:
return (
import * as React from 'react' | |
// routing, etc. | |
import { Reset } from '~/ui/shared/Reset' | |
export class App extends React.Component { | |
public render() { | |
return ( | |
<div> | |
<title>Dashboard</title> |
/** | |
* Easing functions | |
* | |
* https://gist.github.com/gre/1650294 | |
* http://easings.net | |
*/ | |
// no easing, no acceleration | |
export function easeLinear(t){ return t } | |
// accelerating from zero velocity | |
export function easeInQuad(t){ return t*t } |
Packaging JavaScript applications can be a bit overwhelming. The popular project uglifyjs does not support ES6, it is cumbersome to configure the allmighty Webpack, bundlers like Parcel and Microbundle still have bugs or do not compile to ESM bundles that work in a browser. It is hard to figure out the best way to bundle an application.
Here I give a small example, how we achieve the goal using the
# Docker compose to set up containers for all services you need: | |
# VPN | |
# Sonarr, Radarr, Lidarr, Qbittorrent | |
# Non-VPN | |
# Plex, get_iplayer | |
# Before running docker-compose, you should pre-create all of the following folders. | |
# Folders for Docker State: | |
# /volume1/dockerdata. - root where this docker-compose.yml should live | |
# /volume1/dockerdata/plex - Plex config and DB | |
# /volume1/dockerdata/sonarr - Sonarr config and DB |