Browse Source

fix(hmr): properly force hmr full component props update

fix #1942
Evan You 5 years ago
parent
commit
499bc0bfc4

+ 6 - 1
packages/runtime-core/src/componentProps.ts

@@ -153,7 +153,12 @@ export function updateProps(
   const rawCurrentProps = toRaw(props)
   const [options] = normalizePropsOptions(instance.type)
 
-  if ((optimized || patchFlag > 0) && !(patchFlag & PatchFlags.FULL_PROPS)) {
+  if (
+    // always force full diff if hmr is enabled
+    !(__DEV__ && instance.type.__hmrId) &&
+    (optimized || patchFlag > 0) &&
+    !(patchFlag & PatchFlags.FULL_PROPS)
+  ) {
     if (patchFlag & PatchFlags.PROPS) {
       // Compiler-generated props & no keys change, just set the updated
       // the props.

+ 0 - 3
packages/runtime-core/src/renderer.ts

@@ -1451,9 +1451,6 @@ function baseCreateRenderer(
     nextVNode: VNode,
     optimized: boolean
   ) => {
-    if (__DEV__ && instance.type.__hmrId) {
-      optimized = false
-    }
     nextVNode.component = instance
     const prevProps = instance.vnode.props
     instance.vnode = nextVNode