git clone [email protected]:YOUR-USERNAME/YOUR-FORKED-REPO.git
cd into/cloned/fork-repo
git remote add upstream git://github.com/ORIGINAL-DEV-USERNAME/REPO-YOU-FORKED-FROM.git
git fetch upstream
git clone [email protected]:YOUR-USERNAME/YOUR-FORKED-REPO.git
cd into/cloned/fork-repo
git remote add upstream git://github.com/ORIGINAL-DEV-USERNAME/REPO-YOU-FORKED-FROM.git
git fetch upstream
React Hook | Ember Hook | Server? | Initial Render? | Rerender? | Purpose |
---|---|---|---|---|---|
componentWillMount |
init |
Yes | Yes | No | Set initial component state without triggering re-render |
componentDidMount |
didInsertElement |
No | Yes | No | Provides opportunity for manual DOM manipulation |
componentWillReceiveProps |
willReceiveAttrs |
No | No | Yes | React to changes in component attributes, so that setState can be invoked before render |
shouldComponentUpdate |
Maybe N/A | No | No | Yes | Gives a component an opportunity to reject downstream revalidation |
componentWillUpdate |
willUpdate |
No | No | Yes | Invoked before a template is re-rendered to give the component an opportunity to inspect the DOM before updates have been applied (example) |
componentDidUpdate |
didUpdate |
No | No | Yes | Invoked after a template is r |
Install the React Developer Tools Chrome Extension.
Go to the egghead website, i.e. Getting Started with Redux
Click View -> Developer -> Javascript Console
, then the React
tab, then the <NextUpLessonList ...>
tag.
Click back to the Console
tab, then run:
{ | |
"keys": ["tab"], | |
"command": "expand_abbreviation_by_tab", | |
// put comma-separated syntax selectors for which | |
// you want to expandEmmet abbreviations into "operand" key | |
// instead of SCOPE_SELECTOR. | |
// Examples: source.js, text.html - source | |
"context": [ | |
{ |
On the Refinery29 Mobile Web Team, codenamed "Bicycle", all of our unit tests are written using Jasmine, an awesome BDD library written by Pivotal Labs. We recently switched how we set up data for tests from declaring and assigning to closures, to assigning properties to each test case's this
object, and we've seen some awesome benefits from doing such.
Up until recently, a typical unit test for us looked something like this:
describe('views.Card', function() {
#!/usr/bin/env bash | |
# | |
# Approach: | |
# 1. Find variable declaration in the form of "$my-var: anyvalue" | |
# 2. Loop through found variables and find occurrences of each variable in all sass files | |
# 3. Filter out vars that occurred only once | |
if [ -z "$1" ]; then | |
echo "Please specify a directory as the first argument." | |
exit 1 |
function hasClass(elem, className) { | |
return new RegExp(' ' + className + ' ').test(' ' + elem.className + ' '); | |
} | |
function addClass(elem, className) { | |
if (!hasClass(elem, className)) { | |
elem.className += ' ' + className; | |
} | |
} |