在字符串里写的script结束标签把外面的script闭合了?

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标签闭合了

阅读 6.5k
2 个回答

我搞明白问题了。

当代码运行到</script>的时候就认为代码结束了,没有解析后面的引号就会报错了,所以只要拆开成'</scrip' + 't>'就可以了。

学好英语很重要,不然连错误提示都看不懂……

Unterminated string constant 未闭合的字符串常量。

开头有单引号了,结尾的单引号呢?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题