How to force update the Vue component to re-render
In this tutorial, we are going to learn about how to force update the vue component to re-render or reload with an updated UI.
Vue components automatically re-render when a component state or props is changed. like a simple state change may re-render the component with a new UI (User interface).
In some cases, the vue reactivity system doesn’t enough to detect the dom changes, so that we need to force update the vue components to re-render.
The forceUpdate method
Vue offers us a built-in method called forceUpdate()
, by using this method inside vue instance we can force update the component.
Let’s see an example:
<template>
<div id="app">
<h1>{{Math.random()}}</h1>
<button @click="update">Force Update</button> </div>
</template>
<script>
export default {
methods:{
update(){
this.$forceUpdate(); }
}
};
</script>
In the above example, we have attached an update
method to the button
element.
Inside the update
method we have added a this.$forceUpdate()
method, so that when we click on a button, it will re-render the component with a new random
number.
Using the mount method
The mount method is used to manually connect the vue instance to the dom, which will trigger the component to re-render.
Here is an example:
<template>
<div id="app">
<h1>{{Math.random()}}</h1>
<button @click="update">Force Update</button> </div>
</template>
<script>
export default {
methods:{
update(){
this.$mount(); }
}
};
</script>