Comparing the previous props with the current props is helpful to avoid unnecessary component re-renders. This article explains how to access previous props in both functional and class components.
Here is an example of where previous props are helpful in a class component.
componentDidUpdate(prevProps: Props, prevState: State) {
   if(prevProps.color === "green" && this.props.color === "blue"){
      console.log("Show Loading!!!")
   }
}React Js class components have a built-in solution to access the previous props. Here is how I can compare the previous props to current props in the componentDidUpdate() lifecycle method.
componentDidUpdate(prevProps: Props, prevState: State) {
   if(prevProps.color === "green" && this.props.color === "blue"){
      console.log("Show Loading!!!")
   }
}The complete example is listed below.
import { Component } from "react";
interface Props {
   color: string
}
interface State {
   color: string
}
export default class ChildComponent extends Component<Props, State>{
   componentDidUpdate(prevProps: Props, prevState: State) {
      if(prevProps.color === "green" && this.props.color === "blue"){
         console.log("Show Loading!!!")
      }
   }
   render(){
      return <div style={{backgroundColor: this.props.color}}>Color</div>
  }
}Unlike class components, functional components do not provide an out-of-the-box solution to access the previous props in lifecycle hooks. Therefore, I must implement a solution to preserve the previous props. Below is one way to do it.
const usePrevious = (color: string) => {
   const prev = useRef<string>()
   useEffect(() => {
      prev.current = color
   }, [color])
   return prev.current
}
The 
import { useEffect, useRef } from "react"
interface Props {
   color: string
}
export const FunctionalComponent = (props: Props) =>{
  
   const prevColor = usePrevious(props.color)
   useEffect(() => {
      if(prevColor === "green" && props.color === "blue"){
      console.log("Show Loading!!!")
      }
   })
  return <div style={{backgroundColor: props.color}}>Color</div>
}
const usePrevious = (color: string) => {
   const prev = useRef<string>()
   useEffect(() => {
      prev.current = color
   }, [color])
   return prev.current
}