首页 > 其他分享 >Composition API

Composition API

时间:2022-10-14 21:01:09浏览次数:39  
标签:return setup reactive API message ref Composition

1. setup中定义数据

1.1 定义普通的数据

点击查看代码
<template>
  <div>
    <h2>{{ message }}</h2>
  </div>
</template>
<script>
  export default {
    setup(){
      const message = "hello world"
      return {
        message
      }
    }
  }
</script>
<style scoped>

</style>
但是这种有一个缺点,就是数据不是响应式的,例如
点击查看代码
<template>
  <div>
    <h2>{{ message }}</h2>
    <button @click="changeMessage">修改Message</button>
  </div>
</template>
<script>
  export default {
    setup(){
      let message = "hello world"
      function changeMessage(){
        message = "你好,世界"
      }
      return {
        message,
        changeMessage
      }
    }
  }
</script>
<style scoped>

</style>
![img](/i/l/?n=22&i=blog/2001629/202210/2001629-20221014205338698-638356040.png)

1.2 定义响应式数据

第一种方式: Reactive API

Reactive API定义复杂类型的数据

点击查看代码
<template>
  <div>
    <h2>账号: {{ account.username }}</h2>
    <h2>密码: {{ account.passwd }}</h2>
    <button @click="change">修改</button>
  </div>
</template>
<script>
  import { reactive } from 'vue'
  export default {
    setup(){
      const account = reactive({
        username: "admin",
        passwd: "admin"
      })
      function change(){
        account.username = "kobe"
      }
      return {
        account,
        change
      }
    }
  }
</script>
<style scoped>

</style>

第二种方式: Ref API

reactive API对传入的类型是有限制的,它要求必须传入的是一个对象或者数组类型
如果传入一个基本数据类型(String、Number、Boolean)会报一个警告
img
Vue3提供了另外一个API:ref API(其实它既可以定义简单数据类型,也可以定义复杂类型数据)

点击查看代码
<template>
  <div>
    <!-- 默认情况下,在template中使用ref时,vue会自动帮我们解包(也就是会自动取value) -->
    <h2>当前计数: {{ number }}</h2>
    <button @click="add">+1</button>
  </div>
</template>
<script>
import { ref } from 'vue';

  
  export default {
    setup(){
      // ref返回的是一个对象
      const number = ref(0)
      function add(){
        number.value++
      }
      return {
        number,
       add
      }
    }
  }
</script>
<style scoped>

</style>

2. reactive api 和ref api的使用场景

2.1 reactive api的使用场景

点击查看代码
1. 本地的数据
2. 多个数据之间有关系(例如:提交表单的时候,用户名,密码,邮箱等这类的数据)

2.2 ref api的使用场景

点击查看代码
除了上述的场景,其它场景基本都是ref

3. toRefs

img

4. setup中使用computed

点击查看代码
<template>
  <div>
    <h2>{{ fullName }}</h2>
  </div>
</template>
<script>
import { reactive, computed } from 'vue';

  
  export default {
    setup(){
      const names = reactive({
        firstName: "kobe",
        lastName: "btyant"
      })

      const fullName = computed(() => {
        return names.firstName + " " + names.lastName
      })

    return {
      names,
      fullName
    }
    }
  }
</script>
<style scoped>

</style>

标签:return,setup,reactive,API,message,ref,Composition
From: https://www.cnblogs.com/yufenchi/p/16792995.html

相关文章

  • DEMO:ME31L 创建计划协议 BAPI_SAG_CREATE
    前台:ME31L程序执行:*&---------------------------------------------------------------------**&ReportZLM_ME31L*&*&-----------------------------------------------......
  • DEMO: BAPI_SALESORDER_CREATEFROMDAT2 创建订单
    REPORTzdemo_va01.PARAMETERSp_kunnrTYPEkunnrDEFAULT'1004615'.PARAMETERSp_vkorgTYPEvkorgDEFAULT'S600'.PARAMETERSp_vtwegTYPEvtwegDEFAULT'10'.PARAM......
  • BAPI_ACC_DOCUMENT_POST更新BSED数据增强
    FB03查看凭证对于特殊总账类型为W的,双击进入可见出票人出票行票据号等信息这些数据是保存在bsed表的。而BAPI_ACC_DOCUMENT_POST 并没有提供这些字段。所以需要走增强。......
  • DEMO:MB1B 311 移库 BAPI_GOODSMVT_CREATE
    *&---------------------------------------------------------------------**&ReportZDEMO_MB1B*&*&---------------------------------------------------------------......
  • 操作系统导论习题解答(27. Thread API)
    Interlude:ThreadAPI带着两个问题学习本章节:OS创造和控制线程预留了什么接口?这些接口是如何被设计以实现易用性和实用性?1.ThreadCreation2.ThreadCompletion......
  • 操作系统导论习题解答(5. Process API)
    0.installingandusingofCygminSinceCygwinwasinstalledattherequestoftheteacherwhentakingthebasiccomputerclass,Iwillnotintroduceithere.......
  • 操作系统导论习题解答(14. Memory API)
    Interlude:MemoryAPI1.TypesofMemory对于一个即将运行的C程序,有两种分配内存的方式。第一种为stackmemory,也叫做automaticmemory。当你调用func(),编译器做剩......
  • WDA DEMO 11 根据BAPI/Function创建WDA
    货铺QQ群号:834508274进群统一修改群名片,例如BJ_ABAP_森林木。群内禁止发广告及其他一切无关链接,小程序等,进群看公告,谢谢配合不修改昵称会被不定期踢除,谢谢配合事先声明下,本......
  • 增强Demo 03 销售订单屏幕增强后BAPI增强
    干货:前面两篇文章分别介绍了销售订单抬头和行项目上屏幕增强的案例。屏幕上增加了俩字段,那BAPI创建修改的时候怎么处理?怎么把增强字段值写进去?使用BAPI的EXTENSIONIN参数可......
  • HU打包BAPI:内部给号 更新交货单
    其他相关资料可点击:​​HU相关配置​​​​HU打包 内外部给号 前台操作​​代码输入参数:内向交货单号*"--------------------------------------------------------------......