title: Changing value in a class does not trigger watch in Vue 3
body: <p>I have a class which I use in my Vue3 component to set/reset/update some values with.
  I rely on Vue Watchers to see if my applied state is changed in said class to be able to do something with it (call an API endpoint for example).</p>
  <p>Now this worked perfectly fine in Vue 2 but for some reason if I mutate a variable from inside my class it does not trigger my watch function. It DOES trigger my watch function when I set a value from my component however; but that option does not work for me in the long run.</p>
  <p><strong>So in short:</strong></p>
  <p>How can I make sure my watch is triggered when I set the value from my component AND from my Class instance itself?</p>
  <p>Check my demo(And open console for some extra logging) to see what I mean: (expected behavior is that <code>applied</code> should be set to 3 in 1 second and 100 after 3 seconds)
  <a href="https://codepen.io/Timen/pen/JjLMawO" rel="nofollow noreferrer">https://codepen.io/Timen/pen/JjLMawO</a></p>
  <p><em>Things I've tried:</em></p>
  <ul>
  <li>Using composition API and setup the watcher in my setup</li>
  <li>Use <code>watchEffect</code></li>
  <li>Use <code>deep: true</code> and <code>flush: post</code> on watcher</li>
  <li>Setting up an entire new project with no extra dependencies other than vite 3 + vue3 and even tried it with a clean build with vue-cli 4.5 + vue3</li>
  <li>Wrapping my class in a <code>ref()</code> in my <code>setup</code></li>
  <li>Tried setting the applied value via <code>Object.assign</code></li>
  </ul>