Skip to content

Commit 42d8090

Browse files
edison1105haoqunjiang
authored andcommitted
chore: improve code
1 parent 7ed4bfe commit 42d8090

File tree

2 files changed

+21
-18
lines changed

2 files changed

+21
-18
lines changed

packages/compiler-ssr/__tests__/ssrVModel.spec.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -39,15 +39,15 @@ describe('ssr: v-model', () => {
3939
`<select v-model="model"><option value="1"></option></select>`
4040
).code
4141
).toMatchInlineSnapshot(`
42-
"const { ssrLooseContain: _ssrLooseContain, ssrLooseEqual: _ssrLooseEqual, ssrRenderAttrs: _ssrRenderAttrs } = require("vue/server-renderer")
42+
"const { ssrIncludeBooleanAttr: _ssrIncludeBooleanAttr, ssrLooseContain: _ssrLooseContain, ssrLooseEqual: _ssrLooseEqual, ssrRenderAttrs: _ssrRenderAttrs } = require("vue/server-renderer")
4343
4444
return function ssrRender(_ctx, _push, _parent, _attrs) {
4545
_push(\`<div\${
4646
_ssrRenderAttrs(_attrs)
4747
}><select><option value="1"\${
48-
((Array.isArray(_ctx.model))
48+
(_ssrIncludeBooleanAttr((Array.isArray(_ctx.model))
4949
? _ssrLooseContain(_ctx.model, "1")
50-
: _ssrLooseEqual(_ctx.model, "1")) ? " selected" : ""
50+
: _ssrLooseEqual(_ctx.model, "1"))) ? " selected" : ""
5151
}></option></select></div>\`)
5252
}"
5353
`)
@@ -57,15 +57,15 @@ describe('ssr: v-model', () => {
5757
`<select multiple v-model="model"><option value="1" selected></option><option value="2"></option></select>`
5858
).code
5959
).toMatchInlineSnapshot(`
60-
"const { ssrLooseContain: _ssrLooseContain, ssrLooseEqual: _ssrLooseEqual, ssrRenderAttrs: _ssrRenderAttrs } = require("vue/server-renderer")
60+
"const { ssrIncludeBooleanAttr: _ssrIncludeBooleanAttr, ssrLooseContain: _ssrLooseContain, ssrLooseEqual: _ssrLooseEqual, ssrRenderAttrs: _ssrRenderAttrs } = require("vue/server-renderer")
6161
6262
return function ssrRender(_ctx, _push, _parent, _attrs) {
6363
_push(\`<div\${
6464
_ssrRenderAttrs(_attrs)
6565
}><select multiple><option value="1" selected></option><option value="2"\${
66-
((Array.isArray(_ctx.model))
66+
(_ssrIncludeBooleanAttr((Array.isArray(_ctx.model))
6767
? _ssrLooseContain(_ctx.model, "2")
68-
: _ssrLooseEqual(_ctx.model, "2")) ? " selected" : ""
68+
: _ssrLooseEqual(_ctx.model, "2"))) ? " selected" : ""
6969
}></option></select></div>\`)
7070
}"
7171
`)

packages/compiler-ssr/src/transforms/ssrVModel.ts

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@ import {
1818
import {
1919
SSR_LOOSE_EQUAL,
2020
SSR_LOOSE_CONTAIN,
21-
SSR_RENDER_DYNAMIC_MODEL
21+
SSR_RENDER_DYNAMIC_MODEL,
22+
SSR_INCLUDE_BOOLEAN_ATTR
2223
} from '../runtimeHelpers'
2324
import { DirectiveTransformResult } from 'packages/compiler-core/src/transform'
2425

@@ -136,17 +137,19 @@ export const ssrTransformModel: DirectiveTransform = (dir, node, context) => {
136137
const value = findValueBinding(plainNode)
137138
plainNode.ssrCodegenNode!.elements.push(
138139
createConditionalExpression(
139-
createConditionalExpression(
140-
createCallExpression(`Array.isArray`, [model]),
141-
createCallExpression(context.helper(SSR_LOOSE_CONTAIN), [
142-
model,
143-
value
144-
]),
145-
createCallExpression(context.helper(SSR_LOOSE_EQUAL), [
146-
model,
147-
value
148-
])
149-
),
140+
createCallExpression(context.helper(SSR_INCLUDE_BOOLEAN_ATTR), [
141+
createConditionalExpression(
142+
createCallExpression(`Array.isArray`, [model]),
143+
createCallExpression(context.helper(SSR_LOOSE_CONTAIN), [
144+
model,
145+
value
146+
]),
147+
createCallExpression(context.helper(SSR_LOOSE_EQUAL), [
148+
model,
149+
value
150+
])
151+
)
152+
]),
150153
createSimpleExpression(' selected', true),
151154
createSimpleExpression('', true),
152155
false /* no newline */

0 commit comments

Comments
 (0)