如何在独立(单文件)Vue3 SPA 中使用 Compose API?

How to use Compose API in a standalone (one-file) Vue3 SPA?

我通过引导项目内容然后构建它以进行部署来编写(业余)Vue3 应用程序(*)。效果很好。

我需要创建一个独立的单一 HTML 页面,可以直接在浏览器中加载。几年前我刚开始使用 Vue 时(在 v1 → v2 的过渡期间),我曾经这样做过,那时我立即找到了正确的文档。

我无法为 Vue3 和 Composition 找到类似的 API。

什么是显示值反应变量 {{hello}} 的骨架页面(我将在 <script setup> 中在完整的构建应用程序的上下文中定义)

我以前就是这样做的(希望我做对了)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="https://unpkg.com/vue@2"></script>
</head>
<body>

<div id="app">
    {{hello}}
</div>

<script>
    // this is how I used to do it in Vue2 if I remember correctly
    new Vue({
        el: '#app',
        data: {
            hello: "bonjour!"
        }
        // methods, watch, computed, mounted, ...
    })
</script>

</body>
</html>

(*) 我实际上使用了 Quasar framework 但这并没有改变我问题的核心。

根据 official docs:

,您无法使用 CDN 进行脚本设置

<script setup> is a compile-time syntactic sugar for using Composition API inside Single File Components (SFCs)

但您可以在页面脚本中使用设置挂钩,如下所示:

const {
  createApp,
  ref
} = Vue;
const App = {
  setup() {
    const hello = ref('Bonjour')


    return {
      hello
    }

  }


}
const app = createApp(App)
app.mount('#app')
<script src="https://unpkg.com/vue@3.0.0-rc.11/dist/vue.global.prod.js"></script>

<div id="app">
  {{hello}}
</div>