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

cgvd09ve  于 2023-05-23  发布在  Vue.js
关注(0)|答案(1)|浏览(204)

我通过引导项目的内容来编写(业余的)Vue3应用程序,然后构建它以进行部署(*)。效果很好。
我需要创建一个独立的,单一的HTML页面,可以直接在浏览器中加载。几年前我开始使用Vue时(在v1 → v2的过渡期间),我曾经这样做过,当时我立即找到了合适的文档。
我找不到类似的Vue3和Composition API。
什么是显示值React变量{{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,但这并没有改变我的问题的核心。

xienkqul

xienkqul1#

根据official docs,您无法使用CDN进行脚本设置:
<script setup>是一个编译时语法糖,用于在单文件组件(SFC)中使用Composition API
但是你可以在页面脚本中使用setup钩子,如下所示:

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>

相关问题