Bird
Raised Fist0
Reactframework~10 mins

React vs traditional JavaScript - Visual Side-by-Side Comparison

Choose your learning style10 modes available
Concept Flow - React vs traditional JavaScript
Start: User opens page
↓
Traditional JS: DOM manipulation
↓
Update UI by direct DOM changes
↓
React: Component render
↓
React: State change triggers re-render
↓
React: Virtual DOM diff
↓
React: Efficient DOM update
↓
User sees updated UI
This flow shows how traditional JavaScript updates the UI by changing the DOM directly, while React uses components and state to update the UI efficiently through a virtual DOM.
Execution Sample
React
import React, { useState } from 'react';

const CounterButton = () => {
  const [count, setCount] = useState(0);

  return (
    <button onClick={() => setCount(count + 1)}>
      Clicked {count} times
    </button>
  );
};

export default CounterButton;
A React button that updates its displayed count when clicked using state and re-render.
Execution Table
StepActionState BeforeState AfterUI UpdateDOM Change
1Initial rendercount=0count=0Button shows 'Clicked 0 times'Button element created with text 'Clicked 0 times'
2User clicks buttoncount=0count=1Button shows 'Clicked 1 times'Text node inside button updated to 'Clicked 1 times'
3User clicks button againcount=1count=2Button shows 'Clicked 2 times'Text node inside button updated to 'Clicked 2 times'
4No further clickscount=2count=2UI unchangedNo DOM changes
💡 User stops clicking, state remains stable, no further UI or DOM updates.
Variable Tracker
VariableStartAfter 1After 2Final
count0122
Key Moments - 2 Insights
Why does React update only the changed text instead of rebuilding the whole button?
React uses a virtual DOM to compare changes and updates only the parts that changed, as shown in steps 2 and 3 of the execution_table where only the text node changes.
In traditional JavaScript, how would updating the count differ from React's approach?
Traditional JavaScript would manually find the button element and change its text content directly, without a virtual DOM diff, which can be less efficient and more error-prone.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table, what is the value of 'count' after step 2?
A0
B2
C1
DUndefined
💡 Hint
Check the 'State After' column in row for step 2.
At which step does the UI first update to show 'Clicked 2 times'?
AStep 2
BStep 3
CStep 1
DStep 4
💡 Hint
Look at the 'UI Update' column for each step in the execution_table.
If the user never clicks the button, how many DOM changes occur?
A1
B2
C0
DMultiple
💡 Hint
Refer to step 1 and step 4 in the execution_table for DOM changes.
Concept Snapshot
React updates UI using components and state.
State changes trigger re-render.
React uses virtual DOM to update only changed parts.
Traditional JS updates DOM directly.
React is more efficient and easier to manage UI updates.
Full Transcript
This visual execution compares React and traditional JavaScript UI updates. Traditional JavaScript changes the DOM directly when updating the UI. React uses components with state. When state changes, React re-renders the component. It compares the new virtual DOM with the old one and updates only the changed parts in the real DOM. The example shows a button with a count. Initially, count is zero and the button text shows 'Clicked 0 times'. When the user clicks the button, React updates the count state and re-renders the button text to 'Clicked 1 times', changing only the text node in the DOM. This process repeats with each click. If the user stops clicking, no further updates happen. This approach makes UI updates efficient and easier to manage compared to manual DOM manipulation in traditional JavaScript.

Practice

(1/5)
1. What is a key difference between React and traditional JavaScript when building web pages?
easy
A. React requires writing HTML only, traditional JavaScript uses CSS only.
B. React uses components and JSX, while traditional JavaScript manipulates the DOM directly.
C. React cannot update the page dynamically, traditional JavaScript can.
D. React uses server-side rendering only, traditional JavaScript is client-side only.

Solution

  1. Step 1: Understand React's approach

    React builds UI using components and JSX, which is a syntax that looks like HTML inside JavaScript.
  2. Step 2: Understand traditional JavaScript approach

    Traditional JavaScript changes the page by directly manipulating the DOM elements, which can be more complex and error-prone.
  3. Final Answer:

    React uses components and JSX, while traditional JavaScript manipulates the DOM directly. -> Option B
  4. Quick Check:

    React uses components and JSX = A [OK]
Hint: React uses components; traditional JS changes DOM directly [OK]
Common Mistakes:
  • Thinking React only uses HTML or CSS
  • Believing React cannot update pages dynamically
  • Confusing server-side and client-side rendering
2. Which of the following is the correct way to create a React functional component?
easy
A. class MyComponent extends React.Component { render() { return 'Hello'; } }
B. var MyComponent =
Hello
;
C. function MyComponent() { return
Hello
; }
D. function MyComponent() { document.write('Hello'); }

Solution

  1. Step 1: Identify React functional component syntax

    A React functional component is a function returning JSX, like function MyComponent() { return <div>Hello</div>; }.
  2. Step 2: Check other options for correctness

    var MyComponent =
    Hello; assigns JSX directly to a variable, not a function. class MyComponent extends React.Component { render() { return 'Hello'; } } is a class component, not functional. function MyComponent() { document.write('Hello'); } uses document.write, which is not React.
  3. Final Answer:

    function MyComponent() { return <div>Hello</div>; } -> Option C
  4. Quick Check:

    Functional component returns JSX function = A [OK]
Hint: Functional components are functions returning JSX [OK]
Common Mistakes:
  • Confusing class components with functional components
  • Using document.write inside React components
  • Assigning JSX to variables without functions
3. What will be the output on the page when this React component is rendered?
function Greeting() {
  const name = 'Alice';
  return <h1>Hello, {name}!</h1>;
}
medium
A. Hello, Alice!
B. Hello, name!
C. <h1>Hello, {name}!</h1>
D. Error: name is not defined

Solution

  1. Step 1: Understand JSX expression evaluation

    Inside JSX, curly braces {name} insert the value of the variable name, which is 'Alice'.
  2. Step 2: Determine rendered output

    The component returns <h1>Hello, Alice!</h1>, so the page shows the text 'Hello, Alice!'.
  3. Final Answer:

    Hello, Alice! -> Option A
  4. Quick Check:

    JSX inserts variable value = C [OK]
Hint: JSX {variable} shows variable value, not text {variable} [OK]
Common Mistakes:
  • Thinking JSX shows {name} literally
  • Confusing variable name with string output
  • Expecting an error due to variable usage
4. Identify the error in this React component code:
function Counter() {
  let count = 0;
  function increment() {
    count++;
  }
  return <button onClick={increment}>Count: {count}</button>;
}
medium
A. Using let instead of const for count
B. onClick should be written as onclick
C. Missing semicolon after count++
D. The increment function does not update the displayed count

Solution

  1. Step 1: Understand React state behavior

    React components must use state (like useState) to update UI dynamically. Here, count is a normal variable and changes won't re-render the component.
  2. Step 2: Identify why increment doesn't update UI

    Increment changes count variable but React does not know to re-render, so displayed count stays 0.
  3. Final Answer:

    The increment function does not update the displayed count -> Option D
  4. Quick Check:

    State needed to update UI = D [OK]
Hint: Use React state (useState) to update UI, not plain variables [OK]
Common Mistakes:
  • Thinking let vs const affects UI update
  • Ignoring React's re-render on state change
  • Using wrong event attribute case
5. You want to build a dynamic list of items that updates when a user adds a new item. Which approach best uses React instead of traditional JavaScript?
hard
A. Use React's useState hook to store the list and update it, then render the list in JSX.
B. Use document.getElementById to find the list element and append new items manually.
C. Write a for loop to create HTML strings and set innerHTML of the list container.
D. Use React class components with componentDidMount to update the list directly.

Solution

  1. Step 1: Understand React's dynamic UI approach

    React uses state (like useState) to hold data and re-renders UI automatically when state changes.
  2. Step 2: Compare with traditional DOM manipulation

    Traditional JavaScript manipulates DOM directly (options A and C), which is harder to manage and less efficient.
  3. Step 3: Consider React class components

    Use React class components with componentDidMount to update the list directly. uses class components and lifecycle methods, but modern React prefers functional components with hooks.
  4. Final Answer:

    Use React's useState hook to store the list and update it, then render the list in JSX. -> Option A
  5. Quick Check:

    React state and JSX rendering = B [OK]
Hint: Use useState hook for dynamic lists in React [OK]
Common Mistakes:
  • Using direct DOM methods inside React components
  • Relying on innerHTML string building
  • Using outdated class components instead of hooks
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard