data () {
return {
code: '<template><div>{{message}}</div></template><script>export default {data() {return {message: "ok"}}}</script>'
}
}
在vue项目中使用这种写法,报错如下:
Syntax Error: Unterminated string constant (15:12)
13 | data () {
14 | return {
> 15 | code: '<template><div>{{message}}</div></template><script>export default {data() {return {message: "ok"}}}
源码里是用单引号包裹了,但是报错信息里字符串里的</script>'
都被截掉了,所以不是没写单引号的问题。应该是字符串里的</script>
把.vue里的script标签闭合了
我搞明白问题了。
当代码运行到
</script>
的时候就认为代码结束了,没有解析后面的引号就会报错了,所以只要拆开成'</scrip' + 't>'
就可以了。