#numberproperties
Explore tagged Tumblr posts
Photo
😂👍 ・・・ #Repost @texasmathteacher with @get_repost ・・・ Life isn’t always Fair, Luckily, MATH is! I tell my students this all the time. You have to be fair with all the parts of the equation. We have to follow the laws and properties of math. What you do to one side, you do to the other. What you do to one number, you do to all the numbers. Use opposite operations- not signs. #equations #mathproblems #mathlife #mathteacher #instateachers #igconnect4edu #maths #propertiesofmath #numberproperties #equationofaline #functions #igteachers #teachersofinstagram #secondaryteacher #secondarymath #middleschool #middleachoolmath #iteachmath #iteach678 #giftedmath #homeschool #classicalconversations https://www.instagram.com/p/BpjoXAZB8Sm/?utm_source=ig_tumblr_share&igshid=1q7wnb9n9rsxo
#repost#equations#mathproblems#mathlife#mathteacher#instateachers#igconnect4edu#maths#propertiesofmath#numberproperties#equationofaline#functions#igteachers#teachersofinstagram#secondaryteacher#secondarymath#middleschool#middleachoolmath#iteachmath#iteach678#giftedmath#homeschool#classicalconversations#educhums
1 note
·
View note
Photo
20 Essential React Tools for 2020
The React ecosystem has evolved into a growing list of dev tools and libraries. The plethora of tools is a true testament to its popularity. For devs, it can be a dizzying exercise to navigate this maze that changes at neck-breaking speed. To help navigate your course, below is a list of essential React tools for 2020.
Hooks
website: reactjs.org/docs/hooks-intro.html
repository: github.com/facebook/react
GitHub stars: 140,000+
developer: Facebook
version: 16.8
contributors: 1,300+
Hooks are a new addition to React as of version 16.8. They unlock useful features in classless components. With Hooks, React no longer needs lifecycle methods such as componentDidMount to manage state. This encourages separation of concerns because components are not managing their own state. Putting a lot of state management inside class components blows up complexity. This makes stateful components harder to maintain. Hooks attempt to alleviate this problem by providing key features.
The following basic Hooks are available:
useState: for mutating state in a classless component without lifecycle methods
useEffect: for executing functions post-render, useful for firing Ajax requests
useContext: for switching component context data, even outside component props
Pros:
mitigates state management complexity
supports functional components
encourages separation of concerns
Cons:
context data switching can exponentiate cognitive load
Functional Components
website: reactjs.org
repository: github.com/facebook/react
GitHub stars: 140,000+
developer: Facebook
current version: 16.12
contributors: 1,300+
Functional components are a declarative way to create JSX markup without class components. They embrace the functional paradigm because they don’t manage state in lifecycle methods. This emphasizes focus on the UI markup without much logic. Because the component relies on props it becomes easier to test. Props have a one-to-one relationship with the rendered output.
This is what a functional component looks like in React:
const SimpleComponent = ({isInit, data}) => <> {useEffect(() => {!isInt && loadAjaxData()})} {data} </>
Pros:
focuses on the UI only
testable component
less cognitive load when thinking about the component
Cons:
no lifecycle methods
Create React App
website: create-react-app.dev
repository: github.com/facebook/create-react-app
GitHub stars: 76,000+
developer: Facebook
current version: 3.4
contributors: 700+
The quintessential tool to fire up a new React project. This manages all React dependencies via a single npm package. No more dealing with Babel, webpack, and whatnot. The entire dependency tool chain gets upgraded with react-scripts in package.json. There’s a way to integrate Create React App with any server-side rendering tool out there. The tool outputs index.html and static assets in the public folder. This public folder is the touch point where static assets are ready for integration.
It’s easy to get started:
npx create-react-app my-killer-app
And it's even easier to upgrade later:
npm i react-scripts@latest
Pros:
easy to get started
easy to upgrade
single meta-dependency
Cons:
no server-side rendering, but allows for integration
Proxy Server
website: create-react-app.dev/docs/proxying-api-requests-in-development
repository: github.com/facebook/create-react-app
GitHub stars: 76,000+
developer: Facebook
version: 0.2.3
contributors: 700+
Starting from version [email protected] or higher, it’s possible to proxy API requests. This allows the back-end API and local Create React App project to co-exist. From the client side, making a request to /my-killer-api/get-data routes the request through the proxy server. This seamless integration works both in local dev and post-build. If local dev runs on port localhost:3000, then API requests go through the proxy server. Once you deploy static assets, then it goes through whatever back end hosts these assets.
To set a proxy server in package.json:
"proxy": "http://localhost/my-killer-api-base-url"
If the back-end API is hosted with a relative path, set the home page:
"homepage": "/relative-path"
Pros:
seamless integration with back-end API
eliminates CORS issues
easy set up
Con
might need a server-side proxy layer with multiple APIs
PropTypes
website: npmjs.com/package/prop-types
repository: github.com/facebook/prop-types
GitHub stars: 3,000+
developer: Facebook
current version: 15.7.2
contributors: 35+
Declares the type intended for the React component and documents its intent. This shows a warning in local dev if the types don’t match. It supports all JavaScript primitives such as bool, number, and string. It can document which props are required via isRequired.
For example:
import PropTypes; MyComponent.propTypes = { boolProperty: PropTypes.bool, numberProperty: PropTypes.number, requiredProperty: PropTypes.string.isRequired };
Pros:
documents component’s intent
shows warnings in local dev
supports all JavaScript primitives
Cons:
no compile type checking
TypeScript
website: typescriptlang.org
repository: github.com/facebook/prop-types
GitHub stars: 58,000+
developer: Microsoft
current version: 3.7.5
contributors: 400+
JavaScript that scales for React projects with compile type checking. This supports all React libraries and tools with type declarations. It’s a superset of JavaScript, so it’s possible to opt out of the type checker. This both documents intent and fails the build when it doesn’t match. In Create React App projects, turn it on by passing in --template typescript. TypeScript support is available starting from version [email protected].
To declare a prop type:
interface MyComponentProps { boolProp?: boolean; // optional numberProp?: number; // optional requiredProp: string; }
Pros:
compile type checking
supports all React tools and libraries, including Create React App
nice way to up your JavaScript skills
Cons:
has a learning curve, but opt out is possible
Redux
website: redux.js.org
repository: github.com/reduxjs/redux
GitHub stars: 52,000+
developer: The Moon
current version: 4.0.5
contributors: 700+
Predictable state management container for JavaScript apps. This tool comes with a store that manages state data. State mutation is only possible via a dispatch message. The message object contains a type that signals to the reducer which mutation to fire. The recommendation is to keep everything in the app in a single store. Redux supports multiple reducers in a single store. Reducers have a one-to-one relationship between input parameters and output state. This makes reducers pure functions.
A typical reducer that mutates state might look like this:
const simpleReducer = (state = {}, action) => { switch (action.type) { case 'SIMPLE_UPDATE_DATA': return {...state, data: action.payload}; default: return state; } };
Pros:
predictable state management
multiple reducers in a single store
reducers are pure functions
Cons:
set up from scratch can be a bit painful
React-Redux
website: react-redux.js.org
repository: github.com/reduxjs/redux
GitHub stars: 18,500+
developer: The Moon
current version: 7.1.3
contributors: 190+
Official React bindings for Redux, it comes in two main modules: Provider and connect. The Provider is a React component with a store prop. This prop is how a single store hooks up to the JSX markup. The connect function takes in two parameters: mapStateToProps, and mapDispatchToProps. This is where state management from Redux ties into component props. As state mutates, or dispatches fire, bindings take care of setting state in React.
This is how a connect might look:
import { bindActionCreators } from 'redux'; import { connect } from 'react-redux'; const mapStateToProps = (state) => state.simple; const mapDispatchToProps = (dispatch) => bindActionCreators({() => ({type: 'SIMPLE_UPDATE_DATA'})}, dispatch); connect(mapStateToProps, mapDispatchToProps)(SimpleComponent);
Pros:
official React bindings for Redux
binds with JSX markup
connects components to a single store
Cons:
learning curve is somewhat steep
Redux-Thunk
website: npmjs.com/package/redux-thunk
repository: github.com/reduxjs/redux-thunk
GitHub stars: 14,000+
developer: The Moon
current version: 2.3.0
contributors: 40+
Thunk middleware for Redux to make asynchronous API calls. It defers execution behind a thunk to unlock asynchrony. A thunk is a function that defers evaluation. For example, () => 1 + 1, because it doesn’t have immediate execution. This comes with niceties, like access to store state, and dispatch. Optional parameters are also supported in the thunk.
For example:
const loadData = () => async (dispatch, getState, optionalAsyncTool) => { const state = getState(); const response = await optionalAsyncTool.get('/url/' + state.data); dispatch({type: 'SIMPLE_LOAD_DATA', payload: response.data}); };
Pros:
quintessential tool for asynchrony
access to state, and dispatch
configurable with optional parameter
Cons:
at first, usefulness is not super clear
Redux-Logger
website: npmjs.com/package/redux-logger
repository: github.com/LogRocket/redux-logger
GitHub stars: 5,000+
developer: Log Rocket
current version: 2.0.4
contributors: 40+
Logger for Redux that captures any dispatches going through the store. Each dispatch shows in the dev console in a log message. It allows drilling into prev, and next state. The action in the dispatch is also available for payload inspection. This logger is useful in local dev and can be ripped out post-build.
The following is a potential setup in Redux middleware:
import { createStore } from 'redux'; let middleware = []; if (process.env.NODE_ENV === 'development') { // rip out post-build const {logger} = require('redux-logger'); middleware.push(logger); } export default () => createStore({}, applyMiddleware(...middleware));
Pros:
good Redux insight
captures all dispatches in the store
can run in local dev only
Cons:
tricky to filter out unwanted messages
The post 20 Essential React Tools for 2020 appeared first on SitePoint.
by Camilo Reyes via SitePoint https://ift.tt/396QpiF
0 notes