title: Call a VueJS life cycle hook from within a method on the same component
body: <p>I use VueJS's <code>mounted</code> hook in my "container" components to fetch data that builds the view. When that container is destroyed, I use the <code>beforeDestroy</code> and <code>destroyed</code> life cycle hooks to "clean up" the component.</p>
  
  <p>These three hooks are <em>not</em> called when the route has changed to the same route, but with different parameters. The suggested way to handle this is by listening for <code>$route</code> changes in <code>watch</code> like so:</p>
  
  <pre><code>watch: {
    '$route' (to, from) {
      this.id = to.params.id
      this.getPageData()
    }
  }
  </code></pre>
  
  <p>However, instead of copying the logic from <code>mounted</code>, <code>beforeDestroy</code>, and <code>destroyed</code>, I was hoping to do something like this:</p>
  
  <pre><code>watch: {
    '$route' (to, from) {
  
      // Manually run lifecycle clean-up hooks
      this.beforeDestroy()
      this.destroyed()
  
      // Update Id, and run mounted
      this.id = to.params.id
      this.mounted()
    }
  }
  </code></pre>
  
  <p>Unfortunately, it looks like the hooks are not exposed on <code>$vm</code>. Is there a way to accomplish this that I am not aware of? Am I missing something obvious? Or is there a better / preferred approach?</p>