typescript - 未调用设置方法

标签 typescript vue.js vuejs3 vue-composition-api

我用 vue ui 创建了一个启动项目( typescript ,巴别塔,短绒绒)。一切正常,但我不太明白如何制作 组合API setup工作的方法。它根本没有被调用(日志输出为空)这就是我被卡住的地方。

  • Vue : 3.0.0-rc.10
  • vue-cli : 4.5.4
    <script lang="ts">
     import { Options, Vue } from 'vue-class-component'
     import HelloWorld from './components/HelloWorld.vue'
    
     @Options({
       components: {
         HelloWorld
       },
       setup () {
         console.log('SETUP HERE')
       }
     })
     export default class App extends Vue {
       setup () {
         console.log('SETUP THERE')
       }
     }
     </script>
    
  • 最佳答案

    您应该导入 setup来自 vue-class-component然后像这样使用它:

    <template>
      <div>Count: {{ counter.count }}</div>
      <button @click="counter.increment()">+</button>
    </template>
    
    <script lang="ts">
    import { ref, reactive, onMounted } from 'vue'
    import { Vue, setup } from 'vue-class-component'
    
    function useCounter () {
      const count = ref(0)
    
      function increment () {
        count.value++
      }
    
      onMounted(() => {
        console.log('onMounted')
      })
    
      return {
        count,
        increment
      }
    }
    
    export default class Counter extends Vue {
      counter = setup(() => useCounter())
    }
    </script>
    
    更多详情请查看 issue

    关于typescript - 未调用设置方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63764104/

    相关文章:

    html - 是否可以有条件地渲染布局?

    html - 为什么我的 html 表单的密码输入字段有浅蓝色背景?

    javascript - VueJs 喜欢按钮 喜欢所有帖子

    laravel - 如何在组件的脚本部分中使用vue-i18n转换功能

    vue.js - Vue3 - i18n - 您正在运行 vue-i18n 的 esm-bundler 构建

    javascript - 当我尝试将 React-router v5 升级到 V6 时出现错误

    typescript - 这种重载如何在 typescript 中起作用?

    reactjs - HandlingChange 输入 REACTJS + TypeScript 错误

    typescript - 支持 NLB 安全组的 AWS CDK

    javascript - 无法导出 Typescirpt 中的接口(interface) - 请求的模块不提供名为 Settings 的导出