vue3 官网提到的 “单文件组件组合式 API 语法糖 (<script setup>) 实验性” 是还不能用吗

2021-02-18 21:08:19 +08:00
 zxCoder

一用<script setup></script>就报错

 ERROR  Failed to compile with 1 error                                                                                                      9:00:02 PM

 error  in ./src/components/Add.vue?vue&type=script&setup=true&lang=js

Syntax Error: TypeError: Cannot read property 'content' of null

2402 次点击
所在节点    问与答
13 条回复
Pionxzh
2021-02-18 21:22:20 +08:00
vue 和 sfc-compiler 是最新版吗?
zxCoder
2021-02-18 21:41:39 +08:00
@Pionxzh 是的 不知道还需要配置什么吗
workg
2021-02-19 09:35:50 +08:00
"vue": "^3.0.5","@vue/compiler-sfc": "^3.0.5", 可以使用。
这个 API 是实验性,后面可能大改甚至废除,使用需考虑清楚。
个人觉的变动可能性不大,因为社区反馈良好。
SilentDepth
2021-02-19 09:53:19 +08:00
我这里实测没有问题。再检查一下你的依赖版本吧。
SilentDepth
2021-02-19 09:58:42 +08:00
@workg #3 script setup 是不错,但没法用对象展开控制 export 的内容,不然就得用 ref (而不是 reactive )声明响应式状态。但 ref.value 太麻烦,想省事就得上 ref sugar,而 ref sugar 还不好用🤷‍♂️
zxCoder
2021-02-19 11:17:52 +08:00
@workg
@SilentDepth

我用的最新版的 vue-cli 创建项目,初始里面的 vue 和 compier-sfc 是^3.0.4,然后我本地有全局安装的 3.0.5 版本。

然后就算把 package.json 里改成^3.0.5 也不行。

是 vue-cli 的问题吗 vue-cli 是 5.0.0 alpha4
workg
2021-02-19 11:24:42 +08:00
@zxCoder vue-cli 是支持的。可能是你代码语法问题,可以贴下代码
workg
2021-02-19 11:31:50 +08:00
zxCoder
2021-02-19 12:06:29 +08:00
@workg

```
<template>
<button @click="inc">{{ count }}</button>
</template>

<script setup>
import { ref } from 'vue'

export const count = ref(0)
export const inc = () => count.value++
</script>
```

我是直接用这个替换了初始化的那个 HelloWorld.vue
SilentDepth
2021-02-19 13:54:48 +08:00
@workg #8 什么?
SilentDepth
2021-02-19 13:55:48 +08:00
@zxCoder #9 不用 export,直接 const 就行了
workg
2021-02-19 13:56:58 +08:00
@zxCoder 不需要 export
zxCoder
2021-02-19 14:09:00 +08:00
@SilentDepth
@workg
谢谢 没想到是这个问题。。。这代码还是我从 github 上复制的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/754038

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX