Chloe  Butler

Chloe Butler

1656428400

A React-select-react-select Component with Material-ui

React-select-material-ui

A react SELECT component based on react-select and looking like a material-ui component


Demo

You can access the storybook for this component here.

Props

The component accepts the props defined bellow in the table plus all props defined for BaseTextFieldProps except InputProps, inputProps and variant (as there is no input).

Props accepted by ReactSelectMaterialUi

NameTypeRequiredDefaultDescription
defaultValuestringnoundefinedThe default value for a single select*
defaultValuesstring[]noundefinedThe default value for a multiple select*
idstringnoundefinedThe id assigned to the input field and referenced by label
onChange(value: string | string[], SelectOption | SelectOption[] | undefined) => voidyes-The callback function called when the option is changed
optionsstring[] | SelectOption[]yes-The selectable options
SelectPropsSelectPropsnoundefinedThe props for react-select component
valuestringnoundefinedThe value for a single select*
valuesstring[]noundefinedThe values for a multiple select*

* The order of the evaluated fields for deciding which is the selected value (take attention to the presence or not of the "s" after "value"):

  • single: value, defaultValue (values, defaultValues)
  • multiple: values, defaultValues (value, defaultValue)

Fields defined by SelectProps

NameTypeRequiredDefaultDescription
isClearablebooleannofalseSet to true to allow remove of selection with backspace or clicking on the x of the value(s)
isCreatablebooleannofalseSet to true to allow creation of new values based on the input string
msgNoOptionsAvailablestringnoNo more options are availableThe message displayed when all options are already selected
msgNoOptionsMatchFilterstringnoNo options match the filterThe message displayed when no options match case-insensitive the input value
msgNoValidValuestringnoThe new value is not valid (contains space)The message displayed when the input value is not accepted by a Creatable for creating a new value

Props ignored in ReactSelectMaterialUiProps

  • placeholder (if there is set prop 'label', as they can overlap)
  • variant (as it is implemented only 'standard')

Props ignored in SelectProps if defined

  • noOptionsMessage
  • placeholder

Fields defined by SelectOption

NameTypeRequiredDescription
labelstringyesThe text displayed as option or value
valueanyyesThe value associated to this option and returned by onChange

Notes about a Creatable select

It does not accept by default new options containing space.

set SelectProps.isValidNewOption to something like the following code to define your own validation:

(inputValue: string) => inputValue !== '';

The format for a new options is: 'INPUTED_TEXT (new)'.

set SelectProps.formatCreateLabel to something like the following code for creating your own formated option:

(value: string) => `${value} (New Label)`;

The new option will be at start of options list.

Set SelectProps.createOptionPosition to last to display the new option to the end of options list.

Styling the component

Label: inputLabelProps.style

ReactSelect: SelectProps.styles

Please check the code in storybook/stories.tsx to see how to customize ReactSelectMaterialUi.


Versions

Please check section Versions in CHANGELOG.md.


Subcomponents

SingleSelect - a component for selecting a single value. It can be imported with:

import { SingleSelect } from 'react-select-material-ui';
import * as React from "react";
import MaterialUiCreatable, { MaterialUiCreatableProps } from "./MaterialUiCreatable";

const SingleSelect = (props: MaterialUiCreatableProps) => (
  <MaterialUiCreatable
    {...props}
    SelectProps={{Without helper text
      ...props.SelectProps,
      isMulti: false
    }}
    fullWidth={true}
  />
);

export default SingleSelect;

MultipleSelect - a component for selecting multiple values. It can be imported with:

import { MultipleSelect } from 'react-select-material-ui';

Setting SelectProps.isClearable to true will display the clearable button only if there are more then one selected value.

import * as React from 'react';
import MaterialUiCreatable, { MaterialUiCreatableProps } from './MaterialUiCreatable';

const MultipleSelect = (props: MaterialUiCreatableProps) => (
  <MaterialUiCreatable
    {...props}
    SelectProps={{
      ...props.SelectProps,
      isMulti: true,
      isClearable: true,
    }}
    fullWidth={true}
  />
);

export default MultipleSelect;

TagsSelect - a component for selecting multiple tag based on MultipleSelect. It can be imported with:

import { TagsSelect } from 'react-select-material-ui';

ColorsSelect - a component for selecting multiple HTML colors (with preview) based on MultipleSelect. It can be imported with:

import { ColorsSelect } from 'react-select-material-ui';

Examples

The base component which allowes to create read-only or creatable select components for selecting only one or more values:

import * as React from 'react';
import ReactSelectMaterialUi from 'react-select-material-ui';

class App extends React.Component {
  render() {
    const options: string[] = ['Africa', 'America', 'Asia', 'Europe'];

    return (
      <div className="App">
        <ReactSelectMaterialUi style={{ width: 100 }} value="Europe" options={options} onChange={this.handleChange} />
      </div>
    );
  }

  handleChange = (value: string) => {
    console.log(value);
  };
}

export default App;

The single select which creates a full width component for selecting a single value:

import * as React from 'react';
import { SingleSelect } from 'react-select-material-ui';

class App extends React.Component {
  render() {
    const options: string[] = ['Africa', 'America', 'Asia', 'Europe'];

    return (
      <div className="App">
        <SingleSelect value="America" placeholder="Select a continent" options={options} onChange={this.handleChange} />
      </div>
    );
  }

  handleChange = (value: string) => {
    console.log(value);
  };
}

export default App;

The multiple select which creates a full width component for selecting multiple values:

import * as React from 'react';
import { MultipleSelect } from 'react-select-material-ui';

class App extends React.Component {
  render() {
    const options: string[] = ['New York', 'London', 'Vienna', 'Budapest'];

    return (
      <div className="App">
        <MultipleSelect
          label="Choose some cities"
          values={['London', 'Vienna']}
          options={options}
          helperText="You can add a new city by writing its name and pressing enter"
          onChange={this.handleChange}
          SelectProps={{
            isCreatable: true,
            msgNoOptionsAvailable: 'All cities are selected',
            msgNoOptionsMatchFilter: 'No city name matches the filter',
          }}
        />
      </div>
    );
  }

  handleChange = (values: string[]) => {
    console.log(values);
  };
}

export default App;

The select multiple tags component:

import * as React from 'react';
import { TagsSelect } from 'react-select-material-ui';

class App extends React.Component {
  render() {
    const options: string[] = ['Personal', 'Work', 'Important', 'Optional', 'Required'];

    return (
      <div className="App">
        <TagsSelect
          label="Tags"
          options={options}
          onChange={this.handleChange}
          SelectProps={{
            isCreatable: true,
            msgNoOptionsAvailable: 'All tags are selected',
            msgNoOptionsMatchFilter: 'No tag matches the filter',
          }}
        />
      </div>
    );
  }

  handleChange = (values: string[]) => {
    console.log(values);
  };
}

export default App;

The select multiple colors component:

import * as React from 'react';
import { ColorsSelect } from 'react-select-material-ui';

class App extends React.Component {
  render() {
    const options: string[] = ['red', '#123456', 'yellow', '#fedcba'];

    return (
      <div className="App">
        <ColorsSelect
          label="Colors"
          options={options}
          helperText="You can add a new color as long as it is a valid HTML color"
          onChange={this.handleChange}
          SelectProps={{
            isCreatable: true,
          }}
        />
      </div>
    );
  }

  handleChange = (values: string[]) => {
    console.log(values);
  };
}

export default App;

Changelog

Please check section Changelog in CHANGELOG.md.


Author: tecnologia-bialog
Source code: https://github.com/tecnologia-bialog/BasePageAutoCompleteIndexLinha13
License: MIT license

#react-native #react #material 

What is GEEK

Buddha Community

A React-select-react-select Component with Material-ui
Autumn  Blick

Autumn Blick

1598839687

How native is React Native? | React Native vs Native App Development

If you are undertaking a mobile app development for your start-up or enterprise, you are likely wondering whether to use React Native. As a popular development framework, React Native helps you to develop near-native mobile apps. However, you are probably also wondering how close you can get to a native app by using React Native. How native is React Native?

In the article, we discuss the similarities between native mobile development and development using React Native. We also touch upon where they differ and how to bridge the gaps. Read on.

A brief introduction to React Native

Let’s briefly set the context first. We will briefly touch upon what React Native is and how it differs from earlier hybrid frameworks.

React Native is a popular JavaScript framework that Facebook has created. You can use this open-source framework to code natively rendering Android and iOS mobile apps. You can use it to develop web apps too.

Facebook has developed React Native based on React, its JavaScript library. The first release of React Native came in March 2015. At the time of writing this article, the latest stable release of React Native is 0.62.0, and it was released in March 2020.

Although relatively new, React Native has acquired a high degree of popularity. The “Stack Overflow Developer Survey 2019” report identifies it as the 8th most loved framework. Facebook, Walmart, and Bloomberg are some of the top companies that use React Native.

The popularity of React Native comes from its advantages. Some of its advantages are as follows:

  • Performance: It delivers optimal performance.
  • Cross-platform development: You can develop both Android and iOS apps with it. The reuse of code expedites development and reduces costs.
  • UI design: React Native enables you to design simple and responsive UI for your mobile app.
  • 3rd party plugins: This framework supports 3rd party plugins.
  • Developer community: A vibrant community of developers support React Native.

Why React Native is fundamentally different from earlier hybrid frameworks

Are you wondering whether React Native is just another of those hybrid frameworks like Ionic or Cordova? It’s not! React Native is fundamentally different from these earlier hybrid frameworks.

React Native is very close to native. Consider the following aspects as described on the React Native website:

  • Access to many native platforms features: The primitives of React Native render to native platform UI. This means that your React Native app will use many native platform APIs as native apps would do.
  • Near-native user experience: React Native provides several native components, and these are platform agnostic.
  • The ease of accessing native APIs: React Native uses a declarative UI paradigm. This enables React Native to interact easily with native platform APIs since React Native wraps existing native code.

Due to these factors, React Native offers many more advantages compared to those earlier hybrid frameworks. We now review them.

#android app #frontend #ios app #mobile app development #benefits of react native #is react native good for mobile app development #native vs #pros and cons of react native #react mobile development #react native development #react native experience #react native framework #react native ios vs android #react native pros and cons #react native vs android #react native vs native #react native vs native performance #react vs native #why react native #why use react native

Chloe  Butler

Chloe Butler

1656428400

A React-select-react-select Component with Material-ui

React-select-material-ui

A react SELECT component based on react-select and looking like a material-ui component


Demo

You can access the storybook for this component here.

Props

The component accepts the props defined bellow in the table plus all props defined for BaseTextFieldProps except InputProps, inputProps and variant (as there is no input).

Props accepted by ReactSelectMaterialUi

NameTypeRequiredDefaultDescription
defaultValuestringnoundefinedThe default value for a single select*
defaultValuesstring[]noundefinedThe default value for a multiple select*
idstringnoundefinedThe id assigned to the input field and referenced by label
onChange(value: string | string[], SelectOption | SelectOption[] | undefined) => voidyes-The callback function called when the option is changed
optionsstring[] | SelectOption[]yes-The selectable options
SelectPropsSelectPropsnoundefinedThe props for react-select component
valuestringnoundefinedThe value for a single select*
valuesstring[]noundefinedThe values for a multiple select*

* The order of the evaluated fields for deciding which is the selected value (take attention to the presence or not of the "s" after "value"):

  • single: value, defaultValue (values, defaultValues)
  • multiple: values, defaultValues (value, defaultValue)

Fields defined by SelectProps

NameTypeRequiredDefaultDescription
isClearablebooleannofalseSet to true to allow remove of selection with backspace or clicking on the x of the value(s)
isCreatablebooleannofalseSet to true to allow creation of new values based on the input string
msgNoOptionsAvailablestringnoNo more options are availableThe message displayed when all options are already selected
msgNoOptionsMatchFilterstringnoNo options match the filterThe message displayed when no options match case-insensitive the input value
msgNoValidValuestringnoThe new value is not valid (contains space)The message displayed when the input value is not accepted by a Creatable for creating a new value

Props ignored in ReactSelectMaterialUiProps

  • placeholder (if there is set prop 'label', as they can overlap)
  • variant (as it is implemented only 'standard')

Props ignored in SelectProps if defined

  • noOptionsMessage
  • placeholder

Fields defined by SelectOption

NameTypeRequiredDescription
labelstringyesThe text displayed as option or value
valueanyyesThe value associated to this option and returned by onChange

Notes about a Creatable select

It does not accept by default new options containing space.

set SelectProps.isValidNewOption to something like the following code to define your own validation:

(inputValue: string) => inputValue !== '';

The format for a new options is: 'INPUTED_TEXT (new)'.

set SelectProps.formatCreateLabel to something like the following code for creating your own formated option:

(value: string) => `${value} (New Label)`;

The new option will be at start of options list.

Set SelectProps.createOptionPosition to last to display the new option to the end of options list.

Styling the component

Label: inputLabelProps.style

ReactSelect: SelectProps.styles

Please check the code in storybook/stories.tsx to see how to customize ReactSelectMaterialUi.


Versions

Please check section Versions in CHANGELOG.md.


Subcomponents

SingleSelect - a component for selecting a single value. It can be imported with:

import { SingleSelect } from 'react-select-material-ui';
import * as React from "react";
import MaterialUiCreatable, { MaterialUiCreatableProps } from "./MaterialUiCreatable";

const SingleSelect = (props: MaterialUiCreatableProps) => (
  <MaterialUiCreatable
    {...props}
    SelectProps={{Without helper text
      ...props.SelectProps,
      isMulti: false
    }}
    fullWidth={true}
  />
);

export default SingleSelect;

MultipleSelect - a component for selecting multiple values. It can be imported with:

import { MultipleSelect } from 'react-select-material-ui';

Setting SelectProps.isClearable to true will display the clearable button only if there are more then one selected value.

import * as React from 'react';
import MaterialUiCreatable, { MaterialUiCreatableProps } from './MaterialUiCreatable';

const MultipleSelect = (props: MaterialUiCreatableProps) => (
  <MaterialUiCreatable
    {...props}
    SelectProps={{
      ...props.SelectProps,
      isMulti: true,
      isClearable: true,
    }}
    fullWidth={true}
  />
);

export default MultipleSelect;

TagsSelect - a component for selecting multiple tag based on MultipleSelect. It can be imported with:

import { TagsSelect } from 'react-select-material-ui';

ColorsSelect - a component for selecting multiple HTML colors (with preview) based on MultipleSelect. It can be imported with:

import { ColorsSelect } from 'react-select-material-ui';

Examples

The base component which allowes to create read-only or creatable select components for selecting only one or more values:

import * as React from 'react';
import ReactSelectMaterialUi from 'react-select-material-ui';

class App extends React.Component {
  render() {
    const options: string[] = ['Africa', 'America', 'Asia', 'Europe'];

    return (
      <div className="App">
        <ReactSelectMaterialUi style={{ width: 100 }} value="Europe" options={options} onChange={this.handleChange} />
      </div>
    );
  }

  handleChange = (value: string) => {
    console.log(value);
  };
}

export default App;

The single select which creates a full width component for selecting a single value:

import * as React from 'react';
import { SingleSelect } from 'react-select-material-ui';

class App extends React.Component {
  render() {
    const options: string[] = ['Africa', 'America', 'Asia', 'Europe'];

    return (
      <div className="App">
        <SingleSelect value="America" placeholder="Select a continent" options={options} onChange={this.handleChange} />
      </div>
    );
  }

  handleChange = (value: string) => {
    console.log(value);
  };
}

export default App;

The multiple select which creates a full width component for selecting multiple values:

import * as React from 'react';
import { MultipleSelect } from 'react-select-material-ui';

class App extends React.Component {
  render() {
    const options: string[] = ['New York', 'London', 'Vienna', 'Budapest'];

    return (
      <div className="App">
        <MultipleSelect
          label="Choose some cities"
          values={['London', 'Vienna']}
          options={options}
          helperText="You can add a new city by writing its name and pressing enter"
          onChange={this.handleChange}
          SelectProps={{
            isCreatable: true,
            msgNoOptionsAvailable: 'All cities are selected',
            msgNoOptionsMatchFilter: 'No city name matches the filter',
          }}
        />
      </div>
    );
  }

  handleChange = (values: string[]) => {
    console.log(values);
  };
}

export default App;

The select multiple tags component:

import * as React from 'react';
import { TagsSelect } from 'react-select-material-ui';

class App extends React.Component {
  render() {
    const options: string[] = ['Personal', 'Work', 'Important', 'Optional', 'Required'];

    return (
      <div className="App">
        <TagsSelect
          label="Tags"
          options={options}
          onChange={this.handleChange}
          SelectProps={{
            isCreatable: true,
            msgNoOptionsAvailable: 'All tags are selected',
            msgNoOptionsMatchFilter: 'No tag matches the filter',
          }}
        />
      </div>
    );
  }

  handleChange = (values: string[]) => {
    console.log(values);
  };
}

export default App;

The select multiple colors component:

import * as React from 'react';
import { ColorsSelect } from 'react-select-material-ui';

class App extends React.Component {
  render() {
    const options: string[] = ['red', '#123456', 'yellow', '#fedcba'];

    return (
      <div className="App">
        <ColorsSelect
          label="Colors"
          options={options}
          helperText="You can add a new color as long as it is a valid HTML color"
          onChange={this.handleChange}
          SelectProps={{
            isCreatable: true,
          }}
        />
      </div>
    );
  }

  handleChange = (values: string[]) => {
    console.log(values);
  };
}

export default App;

Changelog

Please check section Changelog in CHANGELOG.md.


Author: tecnologia-bialog
Source code: https://github.com/tecnologia-bialog/BasePageAutoCompleteIndexLinha13
License: MIT license

#react-native #react #material 

Mathew Rini

1615544450

How to Select and Hire the Best React JS and React Native Developers?

Since March 2020 reached 556 million monthly downloads have increased, It shows that React JS has been steadily growing. React.js also provides a desirable amount of pliancy and efficiency for developing innovative solutions with interactive user interfaces. It’s no surprise that an increasing number of businesses are adopting this technology. How do you select and recruit React.js developers who will propel your project forward? How much does a React developer make? We’ll bring you here all the details you need.

What is React.js?

Facebook built and maintains React.js, an open-source JavaScript library for designing development tools. React.js is used to create single-page applications (SPAs) that can be used in conjunction with React Native to develop native cross-platform apps.

React vs React Native

  • React Native is a platform that uses a collection of mobile-specific components provided by the React kit, while React.js is a JavaScript-based library.
  • React.js and React Native have similar syntax and workflows, but their implementation is quite different.
  • React Native is designed to create native mobile apps that are distinct from those created in Objective-C or Java. React, on the other hand, can be used to develop web apps, hybrid and mobile & desktop applications.
  • React Native, in essence, takes the same conceptual UI cornerstones as standard iOS and Android apps and assembles them using React.js syntax to create a rich mobile experience.

What is the Average React Developer Salary?

In the United States, the average React developer salary is $94,205 a year, or $30-$48 per hour, This is one of the highest among JavaScript developers. The starting salary for junior React.js developers is $60,510 per year, rising to $112,480 for senior roles.

* React.js Developer Salary by Country

  • United States- $120,000
  • Canada - $110,000
  • United Kingdom - $71,820
  • The Netherlands $49,095
  • Spain - $35,423.00
  • France - $44,284
  • Ukraine - $28,990
  • India - $9,843
  • Sweden - $55,173
  • Singapore - $43,801

In context of software developer wage rates, the United States continues to lead. In high-tech cities like San Francisco and New York, average React developer salaries will hit $98K and $114per year, overall.

However, the need for React.js and React Native developer is outpacing local labour markets. As a result, many businesses have difficulty locating and recruiting them locally.

It’s no surprise that for US and European companies looking for professional and budget engineers, offshore regions like India are becoming especially interesting. This area has a large number of app development companies, a good rate with quality, and a good pool of React.js front-end developers.

As per Linkedin, the country’s IT industry employs over a million React specialists. Furthermore, for the same or less money than hiring a React.js programmer locally, you may recruit someone with much expertise and a broader technical stack.

How to Hire React.js Developers?

  • Conduct thorough candidate research, including portfolios and areas of expertise.
  • Before you sit down with your interviewing panel, do some homework.
  • Examine the final outcome and hire the ideal candidate.

Why is React.js Popular?

React is a very strong framework. React.js makes use of a powerful synchronization method known as Virtual DOM, which compares the current page architecture to the expected page architecture and updates the appropriate components as long as the user input.

React is scalable. it utilises a single language, For server-client side, and mobile platform.

React is steady.React.js is completely adaptable, which means it seldom, if ever, updates the user interface. This enables legacy projects to be updated to the most new edition of React.js without having to change the codebase or make a few small changes.

React is adaptable. It can be conveniently paired with various state administrators (e.g., Redux, Flux, Alt or Reflux) and can be used to implement a number of architectural patterns.

Is there a market for React.js programmers?
The need for React.js developers is rising at an unparalleled rate. React.js is currently used by over one million websites around the world. React is used by Fortune 400+ businesses and popular companies such as Facebook, Twitter, Glassdoor and Cloudflare.

Final thoughts:

As you’ve seen, locating and Hire React js Developer and Hire React Native developer is a difficult challenge. You will have less challenges selecting the correct fit for your projects if you identify growing offshore locations (e.g. India) and take into consideration the details above.

If you want to make this process easier, You can visit our website for more, or else to write a email, we’ll help you to finding top rated React.js and React Native developers easier and with strives to create this operation

#hire-react-js-developer #hire-react-native-developer #react #react-native #react-js #hire-react-js-programmer

New components coming to Material UI React - Skeleton, Rating, TreeView!

New components coming to Material UI React - Skeleton, Rating, TreeView!

In this video I’ll showcase some basic usage of components coming to the material design library for React. The three components are Skeleton, TreeView and Rating.

#react #ui #material ui

A Beginner’s Guide to React

It’s nearly the end of 2019, and you think you might finally be ready to get started learning ReactJS. You hear it’s become the most popular front end JavaScript framework. You sit down at your computer, and are ready to give it a go. Starting off, you probably jump straight in with Facebook’s official React tutorial. After that maybe another tutorial on medium. You do some reading here and there, and if you are like me, you end up pretty confused. You hear terms like “props”, “state”, “virtual dom”, “ES6”, “babel”, “webpack”, “higher-order components”, “Redux”, and much more. Soon you realise that learning React is not as easy as you once imagined and either quit or confusedly persevere on.

Does this sound like you? Because this is exactly how I felt when I started learning React. All I wanted to do was set up a simple React app, and I was getting very confused. I thought React had a fairly difficult learning curve, and I was feeling pretty overwhelmed.

I soon realised that React was fairly easy to learn, but the way I went about learning it was difficult. The problem was I didn’t know how to learn it. Firstly, I was relatively new to the world of front end development and I didn’t know what I was doing. I was somewhat familiar with HTML and only used JavaScript a few times. That certainly did not help. There were technologies and information that I should have spent a little more time learning prior to React, that would have lowered the learning curve tremendously.

This is what I would have liked to have known before I began writing a single line of React code:

Prerequisites

First, let’s nail out the basics. Before you start diving into React, you should probably have at least a little experience with each of the following:

- HTML

- CSS

- ES6 JavaScript

- NodeJS + NPM

If you are familiar with each of the above, then learning React is going to be a lot easier for you. React is big on JavaScript and HTML.


What is React

React is a JavaScript library built in 2013 by the Facebook development team. React wanted to make user interfaces more modular (or reusable) and easier to maintain. According to React’s website, it is used to “Build encapsulated components that manage their own state, then compose them to make complex UIs.”

Understand the Basic

React has 4 ideas that are key to getting started learning with React.

1.Components

React apps have component based architectures. Conceptually, components are more like JavaScript Functions.They accept inputs(called “props”) and return React elements describing what should appear on screen. Probably a title, an author’s name, the date published, some text, some photos, like buttons, share buttons, etc. If you were building this blog in React, each of these would most likely be a component.

If you create a component for a share button, you can reuse that component to build other share buttons, or reuse it across multiple different kinds of articles. This is the idea with React. You are building components that then can be used and reused to build bigger components.

2. Props

Props is short for properties. Properties are how you pass information unidirectionally from parent to child components. I like to think of them as property attributes or parameters, since it is conceptually similar to passing arguments into a function, and syntactically similar to HTML attributes. Look at the example used previously. If this were a React component, the props would be what you are passing in as “src”, “alt”, “height”, and “width”. You can also pass in callback functions for the child to execute such as “onClick”.

3. State

Many React components will be stateful components. State is exactly what it sounds like. It’s the internal state of your component. Think of a checkbox on a web page. It can either be checked or unchecked. When the user clicks on the checkbox, it will check the box if it is unchecked, and when the user clicks it again it will uncheck the box. The checkbox is an example of a stateful component. In this example, the internal state of the checkbox would be a boolean that would either be checked true or checked false.

While many components have state, some are stateless. Just because lots of components have state doesn’t mean that every component needs to be stateful. Sometimes it makes sense to omit state from a component. Think of an image html tag.

**<img src=”smiley.gif” alt=”Smiley face” height=”42" width=”42">**

If this image tag would be an example of a stateless component. You are passing in parameters, but the image tag itself does not have an internal state that it needs to manage itself.

4. React lifecycle

React is much easier to understand if you have a basic idea behind the React component lifecycle. The React lifecycle describes when and how a component should mount, render, update, and unmount in the DOM. React has lifecycle hooks (React component methods) that help you manage state, props, and work with the lifecycle flow.

Image for post

Image for post

**React component lifecycle has three categories **— Mounting, Updating and Unmounting.

  1. The render_() _is the most used lifecycle method.
  • It is a pure function.
  • You cannot set state in render()

2. The componentDidMount() happens as soon as your component is mounted.

  • You can set state here but with caution.

3. The componentDidUpdate_() _happens as soon as the updating happens.

  • You can set state here but with caution.

4. The componentWillUnmount_() _happens just before the component unmounts and is destroyed.

  • This is a good place to cleanup all the data.
  • You cannot set state here.

5. The shouldComponentUpdate_() _can be used rarely.

  • It can be called if you need to tell React not to re-render for a certain state or prop change.
  • This needs to be used with caution only for certain performance optimizations.

6.The two new lifecycle methods are getDerivedStateFromProps() and getSnapshotBeforeUpdate().

  • They need to be used only occasionally.
  • Not many examples are out there for these two methods and they are still being discussed and will have more references in the future.

Note: You can read more about React’s lifecycle here

These are only the basics to get started.

#react-for-beginner #react-lifecycle #react #react-components #ui