在vue的内部封装了大量的api和方法供开发者调用,$forceUpdate方法是其中之一:
用法:
vm.$forceUpdate()
作用:
迫使 Vue
实例重新渲染。注意它仅仅影响实例本身和插入插槽内容的子组件,而不是所有子组件。
内部原理:
Vue.prototype.$forceUpdate = function () {
const vm: Component = this
if (vm._watcher) {
vm._watcher.update()
}
}
实例需要重新渲染是在依赖发生变化的时候会通知watcher,然后通知watcher来调用update方法,就是这么简单。