Skip to content

Commit 3d440a4

Browse files
committed
fix(ssr): fix double escaping of staticClass values (vuejs#7859)
1 parent 8cc7eae commit 3d440a4

File tree

2 files changed

+15
-1
lines changed

2 files changed

+15
-1
lines changed

src/server/optimizing-compiler/modules.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ export function genClassSegments (
9292
classBinding: ?string
9393
): Array<StringSegment> {
9494
if (staticClass && !classBinding) {
95-
return [{ type: RAW, value: ` class=${staticClass}` }]
95+
return [{ type: RAW, value: ` class="${JSON.parse(staticClass)}"` }]
9696
} else {
9797
return [{
9898
type: EXPRESSION,

test/ssr/ssr-string.spec.js

+14
Original file line numberDiff line numberDiff line change
@@ -1211,6 +1211,20 @@ describe('SSR: renderToString', () => {
12111211
})
12121212
})
12131213

1214+
// #7859
1215+
it('should not double escape class values', done => {
1216+
renderVmWithOptions({
1217+
template: `
1218+
<div>
1219+
<div class="a\nb"></div>
1220+
</div>
1221+
`
1222+
}, result => {
1223+
expect(result).toContain(`<div class="a\nb"></div>`)
1224+
done()
1225+
})
1226+
})
1227+
12141228
it('should expose ssr helpers on functional context', done => {
12151229
let called = false
12161230
renderVmWithOptions({

0 commit comments

Comments
 (0)