首页 > 其他分享 >vue3 基础-API-computed

vue3 基础-API-computed

时间:2022-11-12 10:22:31浏览次数:41  
标签:count const computed value API vue3 return countAddFive

前些章节讲了一些常用的 api 如 setup, ref, reactive, toRef ... 等, 并以一个 todoList 的小案例来体现在 vue3 中如何进行解耦逻辑, 以 setup 函数作为调度的这种后端编程思想. 其实我个人觉得没啥, 就比较符合大众的编程习惯而已啦. 本篇继续来介绍计算属性 computed 是如何在 api 中应用的.

computed 的简单使用

<!DOCTYPE html>
<html lang="en">

<head>
  <title>computed</title>
  <script src="https://unpkg.com/vue@3"></script>
</head>

<body>
  <div id="root"></div>
  <script>
    // computed 计算属性
    const app = Vue.createApp({
      setup () {
        const { ref, computed } = Vue
        const count = ref(0)
        const dealClick = () => {
          count.value += 1
        }

        // 其实就是定义一个变量, 给它写上逻辑, 自动计算啦
        const countAddFive = computed(() => {
          return count.value + 5
        })

        return { count, countAddFive, dealClick }
      },
      template: `
      <div>
        <span @click="dealClick">{{count}}</span> -- {{countAddFive}}
      </div>
      `,
    })

    const vm = app.mount('#root')

  </script>
</body>

</html>

对简单的 computed 的使用流程则是:

  • 从 vue 中引入 computed
  • 定义一个属性变量 = computed(( ) => { 逻辑 })
  • return 该属性变量即可在 template 中使用啦

更复杂的一些用法, 则是能在 computed 的函数中去传入对象的操作, 如设置 get 和 set 的方法.

<!DOCTYPE html>
<html lang="en">

<head>
  <title>computed</title>
  <script src="https://unpkg.com/vue@3"></script>
</head>

<body>
  <div id="root"></div>
  <script>
    // computed 计算属性
    const app = Vue.createApp({
      setup () {
        const { ref, computed } = Vue
        const count = ref(0)
        const dealClick = () => {
          count.value += 1
        }

        // 传入一个对象, 编写 get 和 set 的方法
        let countAddFive = computed({
          get: () => {
            return count.value + 5
          },

          set: () => {
            count.value = 666
          }
        })

        setTimeout(() => {
          countAddFive.value = 111
        }, 3000);

        return { count, countAddFive, dealClick }
      },
      template: `
      <div>
        <span @click="dealClick">{{count}}</span> -- {{countAddFive}}
      </div>
      `,
    })

    const vm = app.mount('#root')

  </script>
</body>

</html>

set 方法当值发生变化时候就会自动调用, 然后 get 方法则再进行处理啦. 总之在这个 computed 的使用, 在通过 api 的方式也是非常简单的, 这里就不在探索啦, 咱只要知道它的基本使用流程就行, 在实际应用中还是能用到的, 比如算根据单价和数量, 自动算营业额呀, 算打分呀这些场景, 用 computed 则会让 code 看起来非常清晰和优雅呢.

标签:count,const,computed,value,API,vue3,return,countAddFive
From: https://www.cnblogs.com/chenjieyouge/p/16882807.html

相关文章

  • Node.js fs API docs All In One
    Node.jsfsAPIdocsAllInOneModules:node:moduleAPICJS//module.cjs//InaCommonJSmoduleconstbuiltin=require('node:module').builtinModules;......
  • 实验7:基于REST API的SDN北向应用实践
    实验7:基于RESTAPI的SDN北向应用实践一、实验目的能够编写程序调用OpenDaylightRESTAPI实现特定网络功能;能够编写程序调用RyuRESTAPI实现特定网络功能。二、实......
  • VUE3+Element Plus的el-input获取焦点
    <template><el-inputv-model="msg"id="inputbox"type="text"style="width:500px"/><el-button@click="handleGetFocus">获取焦点</el-button></tem......
  • 免费手机号码归属地API查询接口
    免费手机号码归属地API查询接口 一、淘宝网API   API地址: ​​http://tcc.taobao.com/cc/json/mobile_tel_segment.htm?tel=15850781443......
  • 【Azure API 管理】Azure APIM服务集成在内部虚拟网络后,在内部环境中打开APIM门户使用
    问题描述使用微软API管理服务(AzureAPIManagement),简称APIM。因为公司策略要求只能内部网络访问,所以启用了VNET集成。集成方式见:(在内部模式下使用AzureAPI管理连......
  • P5443 [APIO2019] 桥梁 题解
    容易得出一种暴力算法:将询问按\(w\)排序,将没有修改的边按\(d\)排序。对于每个询问\((t_i,s_i,w_i)\),做两部分操作(这里\(t\)是时间的意思):将没有修改的边中满足\(d......
  • 实验7基于rest-api的sdn北向应用实践
    实验7:基于RESTAPI的SDN北向应用实践一、实验目的能够编写程序调用OpenDaylightRESTAPI实现特定网络功能;能够编写程序调用RyuRESTAPI实现特定网络功能。二、实验......
  • 实验7:基于REST API的SDN北向应用实践
    实验7:基于RESTAPI的SDN北向应用实践一、实验目的能够编写程序调用OpenDaylightRESTAPI实现特定网络功能;能够编写程序调用RyuRESTAPI实现特定网络功能。二、实验......
  • [FastAPI-03]Form表单
    1.安装依赖pipinstall-ihttp://pypi.douban.com/simple/--trusted-hostpypi.douban.compython-multipart2.表单程序.├──post_test_1.py└──templates......
  • 3. 用过Konva吗,用过他的api吗
    基础:使用konva,首先需要创建舞台也就是stage,然后创建一个Layer图层,将图层放到舞台上,将图形等内容放到图层上;第一步:创建一个Stage舞台 ,就是创建一个stage实例;......