Skip to content

mvvm with reactjs #13

@deltecacarrasco

Description

@deltecacarrasco
// Model
const initialData = {
  counter: 0
};

// ViewModel
const useCounterViewModel = () => {
  const [data, setData] = useState(initialData);

  const incrementCounter = () => {
    setData(prevData => ({
      ...prevData,
      counter: prevData.counter + 1
    }));
  };

  return { data, incrementCounter };
};

// View
const CounterView = ({ counter, onIncrement }) => {
  return (
    <div>
      <p>Counter: {counter}</p>
      <button onClick={onIncrement}>Increment</button>
    </div>
  );
};

const App = () => {
  const { data, incrementCounter } = useCounterViewModel();

  return <CounterView counter={data.counter} onIncrement={incrementCounter} />;
};

ReactDOM.render(<App />, document.getElementById('root'));

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions