What is ReactJS, and how does it differ from other JavaScript libraries or frameworks? Explain the concept of Virtual DOM in React and how it contributes to performance optimization. What is JSX, and why is it used in React development? Provide an example of JSX code. What is a React component, and what are the key differences between class components and functional components? How do you pass data from a parent component to a child component in React? Explain the state and props in React. When would you use state and when would you use props? What is the purpose of the setState method in React, and why is it important to use it when modifying state? What are controlled and uncontrolled components in React? When would you use one over the other? Describe the React component lifecycle methods and their order of execution. How do you handle forms in React, and what is the significance of controlled components in form handling? Explain the concept of conditional rendering in React. Provide an example of how you conditionally render components. What is Redux, and how does it help manage application state in React? What are React Hooks, and how do they simplify state management and side effects in functional components?