是否有方法可以中断Vue3`<script setup>`的执行?

如标题描述,是否有方法可以中断Vue3<script setup>的执行?

composition api中script setup代替了beforeCreate、created,在options api中,我们可以在created中请求后端接口,然后根据返回的结果来决定是否继续执行后面的代码:

  async created () {
    this.loading = true
    if (!await this.fetchData()) { // 获取不到数据则中断执行后续逻辑
      this.loading = false
      return
    }
    // 后续逻辑
  },

但是在composition api中的script setup中我们没办法这么做了,因为script setup是setup语法糖,setup函数是用来声明响应式变量(最后需要返回响应式变量)的,不可以直接return

那么我如果想实现在options api中的中断效果,该怎么做?

阅读 4.4k
4 个回答

声明一个函数直接执行不就行了

const loading = ref(false)
async function fn () {
    loading.value = true
    if (!await fetchData()) { // 获取不到数据则中断执行后续逻辑
      loading.value = false
      return
    }
    // 后续逻辑
  }

fn()

你不用 setup 语法糖不就好了?? 直接用 <script> 就行了歪?

如果你是想阻断onMounted里的方法,可以在onBeforeMount里面做判断

他虽然不可以reurn,但是你可以用if...else或switch来执行不同的逻辑代码,另外,真要return,可以尝试抛出一个错误

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