Skip to content

Commit a69ccdc

Browse files
ggtmtmgghefeng
authored and
hefeng
committed
fix(ssr): resolve server directives the same as on client (vuejs#9129)
fix vuejs#8961
1 parent 5259343 commit a69ccdc

File tree

1 file changed

+8
-5
lines changed

1 file changed

+8
-5
lines changed

src/server/render.js

+8-5
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import { escape } from 'web/server/util'
44
import { SSR_ATTR } from 'shared/constants'
55
import { RenderContext } from './render-context'
6+
import { resolveAsset } from 'core/util/options'
67
import { generateComponentTrace } from 'core/util/debug'
78
import { ssrCompileToFunctions } from 'web/server/compiler'
89
import { installSSRHelpers } from './optimizing-compiler/runtime-helpers'
@@ -324,11 +325,13 @@ function renderStartingTag (node: VNode, context) {
324325
if (dirs) {
325326
for (let i = 0; i < dirs.length; i++) {
326327
const name = dirs[i].name
327-
const dirRenderer = directives[name]
328-
if (dirRenderer && name !== 'show') {
329-
// directives mutate the node's data
330-
// which then gets rendered by modules
331-
dirRenderer(node, dirs[i])
328+
if (name !== 'show') {
329+
const dirRenderer = resolveAsset(context, 'directives', name, true)
330+
if (dirRenderer) {
331+
// directives mutate the node's data
332+
// which then gets rendered by modules
333+
dirRenderer(node, dirs[i])
334+
}
332335
}
333336
}
334337
}

0 commit comments

Comments
 (0)