Skip to content

Commit dd80760

Browse files
committed
fix(plugin-vue): custom block prev handling
1 parent 0ea0a4a commit dd80760

File tree

1 file changed

+16
-15
lines changed

1 file changed

+16
-15
lines changed

packages/plugin-vue/src/handleHotUpdate.ts

+16-15
Original file line numberDiff line numberDiff line change
@@ -103,24 +103,25 @@ export async function handleHotUpdate(
103103

104104
// custom blocks update causes a reload
105105
// because the custom block contents is changed and it may be used in JS.
106-
for (let i = 0; i < nextCustoms.length; i++) {
107-
const prev = prevCustoms[i]
108-
const next = nextCustoms[i]
109-
if (!prev || !isEqualBlock(prev, next)) {
110-
const mod = modules.find((m) =>
111-
m.url.includes(`type=${prev.type}&index=${i}`)
112-
)
113-
if (mod) {
114-
affectedModules.add(mod)
115-
} else {
116-
affectedModules.add(mainModule)
106+
if (prevCustoms.length !== nextCustoms.length) {
107+
// block rmeoved/added, force reload
108+
affectedModules.add(mainModule)
109+
} else {
110+
for (let i = 0; i < nextCustoms.length; i++) {
111+
const prev = prevCustoms[i]
112+
const next = nextCustoms[i]
113+
if (!prev || !isEqualBlock(prev, next)) {
114+
const mod = modules.find((m) =>
115+
m.url.includes(`type=${prev.type}&index=${i}`)
116+
)
117+
if (mod) {
118+
affectedModules.add(mod)
119+
} else {
120+
affectedModules.add(mainModule)
121+
}
117122
}
118123
}
119124
}
120-
if (prevCustoms.length > nextCustoms.length) {
121-
// block rmeoved, force reload
122-
affectedModules.add(mainModule)
123-
}
124125

125126
let updateType = []
126127
if (needRerender) {

0 commit comments

Comments
 (0)