0% found this document useful (0 votes)
38 views23 pages

2022 S1 - SE3040 Lecture 05

This document provides an overview of React JS, including its notable features, components, props and state, lifecycle methods, Context API, Hooks, and how to set up a React project using Babel and Parcel. React JS is a JavaScript library for building user interfaces that uses a virtual DOM for efficient updates. It features one-way data flow, JSX syntax, and a component-based architecture. Key concepts include components, props, state, and lifecycle methods like render(), componentDidMount(), and componentWillUnmount(). Context API and Hooks provide additional capabilities. Babel is used for transpilation and Parcel for bundling in a React project setup.

Uploaded by

My Soulmate
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
38 views23 pages

2022 S1 - SE3040 Lecture 05

This document provides an overview of React JS, including its notable features, components, props and state, lifecycle methods, Context API, Hooks, and how to set up a React project using Babel and Parcel. React JS is a JavaScript library for building user interfaces that uses a virtual DOM for efficient updates. It features one-way data flow, JSX syntax, and a component-based architecture. Key concepts include components, props, state, and lifecycle methods like render(), componentDidMount(), and componentWillUnmount(). Context API and Hooks provide additional capabilities. Babel is used for transpilation and Parcel for bundling in a React project setup.

Uploaded by

My Soulmate
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 23

Application frameworks

React JS

1
Overview
React JS
Notable features
Props and State
Component life cycle
Context
Hooks
Babel
Webpack
Parcel
Let’s try this out
Setting up
React JS
● Developed and maintained by Facebook and Instagram.
● A JavaScript library for creating user interfaces.
● Serves as the view of MVC architecture.
● Suitable for large web application which use data and change over the
time without reloading the entire page.
● React Native caters developing mobile application for various platforms
and React VR caters developing VR applications.
● Aims at Speed, Simplicity and Scalability.
Notable features
● One-Way data flow.
○ Single source of truth - Data is originated and kept in one place, data is immutable.
○ Data flow from the parent component to the child component.
○ Action flow from child component to parent component.
● Virtual DOM
○ DOM manipulation is cost instead react create a virtual DOM tree and compare it with the
rendered tree and update only what is changed.
● JSX
○ React JS language for defining user interfaces.
○ HTML/XML like syntax.
○ Prevents cross-site scripting attacks by converting expressions to strings.
Props and State
● Props are used to pass data and behaviors from container components to
child components.
● Props are read only.
● State is used to keep data which can be updated.
● State is read write enabled.
● Use setState({}) method to update state.
● setState method is asynchronous so, if you want to to use state and props
inside setState method use the second form of the method
setState((state,props)=>{}).
Component life cycle
● React components extended from React.Component parent class inherit a set
of methods that belong to react lifecycle.
● Render and Commit state
● Controlled and Uncontrolled components.
● Managing side effects.
● constructor
● render
● componentDidMount
● componentDidUpdate
● componentWillUnmount
● componentDidCatch
constructor
● JS constructor.
● Declare state and bind context to life cycle events.
● Do not call setState.
● Always call super(props) to bind this.props.
render
● Rendering of the component.
● Called everytime state or props are getting changed.
● Can return JSX, Portal, Fragments, Strings, boolean etc.
componentDidMount
● Fires after component is mount to DOM.
● Can interact with DOM.
● Ajax calls and update the state.
getDerivedStateFromProps
● Use this if you want to update your state from props.
● React highly recommends not to use this.
● Highly discourage conditionally setting state from props.
shouldComponentUpdate
● To decide whether to update the component or not.
● Only as a performance enhancement, if required.
componentDidUpdate
● After component got updated.
● Will not run if shouldComponentUpdate return false.
● Use this to interact with DOM after a Component update.
componentWillUnmount
● Before removing the Component.
● Should not call setState.
● Clean up tasks.
getDerivedStateFromError/componentDidCatch
● After an error from decedent component.
● getDerivedStateFromError to get error related State.
● componentDidCatch for logging and side effects.
Context API
● Relatively new API.
● Main purpose to avoid passing props via multiple levels.
● This usage is clearly defined by React as it should be only used to
context level data. Ex: authenticated users, theme
● This should not be used as state holder.
● Controlling the rendering is comparatively hard.
Hooks
● Relatively new feature.
● This is a way to introduce state, some life cycles to functional
components.
● This feature is being extensively used to add new features to
functional components.
● Hooks should only be used at the top level (not in loops etc.) and
should only be used in React functional components and custom
hooks.
● There are mainly two popular hooks
● useState
● useEffect
● Other
○ useContext
○ useReducer
Babel
● Most popular JavaScript transpiler.
● Convert JavaScript es6 features and beyond to latest compatible version.
● Babel polyfills are available to support new global objects. It uses core-js
polyfills.
● So far Babel compatibility with new features has been one of the best.
● Debugging enabled via source maps.
● In built code optimization.
● Supports JSX (XML like syntax extension) and FLOW (Static type
checker).
Webpack
● Most famous module bundler.
● Support for build system as well as module bundling.
● Split code into multiple files.
● Supports CommonJS and AMD.
● Extend using loaders (transpiling, css transformation, image optimization).
● Supports production optimizations (minification, uglification).
● Easy configuration with 4 steps - entry -> loaders -> plugins -> output.
Parcel
● Fastest module bundler.
● Relatively new to community.
● Conventions over configurations.
● Support JSX, SCSS, LESS, SVG, TypeScript etc.
● Plugins available for extension and plugins are automatically detected.
Let’s try this out
Setting up
● Create a node project.
● npm init
● Install parcel and babel related dependencies.
● npm install parcel@next –save-dev
● Install React related dependencies.
● npm install react react-dom --save
23

You might also like