组合式API-reactive和ref函数,computed计算属性,watch函数

server/2024/9/23 5:22:50/
htmledit_views">

一.reactive()接收一个对象类型的数据,返回一个响应式的对象:

html" title=javascript>javascript"><script setup>
import {reactive} from 'vue'
const state = reactive({count:100
})
const setCount =() => {state.count++
}
</script>
<template><div><div>{{ state.count }}</div><button @click="setCount">+1</button></div>
</template>

 二.ref()接收简单类型或者对象类型的数据传入并返回一个响应式对象

推荐声明数据,统一用ref

注意:脚本中访问数据,需要通过.value

          在template中,.value不需要加(自动扒掉了一层)

html" title=javascript>javascript"><script setup>
import {ref} from 'vue'
const count = ref (0)
const setCount = () => {count.value ++
}
</script>
<template><div>{{ count }}</div><button @click="setCount">+1</button>
</template>

三.computed计算属性

const 计算属性 = computed (() => {
   return 计算返回的结果

}

html" title=javascript>javascript"><script setup>
import {computed,ref} from 'vue'
const list = ref([1,2,3,4,5,6,7,8
])
const computedList = computed(() => {return list.value.filter(item => item > 2)
})
</script><template><div><div>原始数据:{{ list }}</div><div>计算后数据:{{ computedList }}</div></div>
</template>

增加一个修改函数

html" title=javascript>javascript"><script setup>
import {computed,ref} from 'vue'
const list = ref([1,2,3,4,5,6,7,8
])
const computedList = computed(() => {return list.value.filter(item => item > 2)
})const addFn = () =>{
list.value.push(666)
}
</script><template><div><div>原始数据:{{ list }}</div><div>计算后数据:{{ computedList }}</div></div><button @click="addFn">修改添加</button>
</template>

注意:计算属性不应该有“副作用”,比如异步请求/修改dom

           避免直接修改计算属性的值,计算属性应该是只读的,特殊情况可以配置get  set 


四.watch函数

作用:侦听一个或者多个数据的变化,数据变化时执行回调函数

俩个额外参数:1.immediate(立即执行) 2.deep(深度侦听)

1,侦听单个数据

  • 导入watch函数
  • 执行watch函数传入要侦听的响应式数据(ref对象)和回调函数

watch(ref对象,(newValue,oldValue) => {...} )

html" title=javascript>javascript"><script setup>
import {ref,watch} from 'vue'
const count = ref(0)
const nickname = ref('张三')
const changeCount = () =>{count.value++
}
const changeNickname = () =>{nickname.value = '李四'
}
//1.监视单个数据变化
// watch(ref对象,(newValue,oldValue) => {...})
watch(count,(newValue,oldValue) => {console.log(newValue,oldValue)
})<template><div>{{ count }}</div><button @lick="changeCount">改数字</button><div>{{ nickname }}</div><button @click="changeNickname">改昵称</button>
</template>

2,侦听多个数据

watch( [ref对象1,ref对象2],(newArr,oldArr) => {...} )

html" title=javascript>javascript"><script setup>
import {ref,watch} from 'vue'
const count = ref(0)
const nickname = ref('张三')
const changeCount = () =>{count.value++
}
const changeNickname = () =>{nickname.value = '李四'
}
</script>
<template><div>{{ count }}</div><button @lick="changeCount">改数字</button><div>{{ nickname }}</div><button @click="changeNickname">改昵称</button>
</template>


http://www.ppmy.cn/server/107413.html

相关文章

Qt详解QSequentialAnimationGroup动画组

文章目录 前言QSequentialAnimationGroup简介为什么需要 QSequentialAnimationGroup好处主要函数及其说明1. `QSequentialAnimationGroup::addAnimation`2. `QSequentialAnimationGroup::removeAnimation`3. `QSequentialAnimationGroup::clear`4. `QSequentialAnimationGroup:…

续:MySQL的并行复制

【示例】 如果数据复制的慢的话&#xff0c;就会导致主从数据不一致性&#xff1b; 有的企业需要数据保持强一致性&#xff1b;比如银行等&#xff1b; 日志回放默认是单线程&#xff1b; # mysql> show processlist; --------------------------------------------------…

Linux|软件开发的基础概念|软件的源码本地编译和交叉编译概念

前言&#xff1a; 本文主要讲述软件的源码本地编译和交叉编译的基本概念&#xff0c;首先&#xff0c;是介绍什么是本地编译&#xff0c;什么是交叉编译&#xff0c;其次&#xff0c;本地编译和交叉编译到底是有什么用处&#xff0c;最后是交叉编译和本地编译的具体应用场景 …

OSPF路由原理详解与关键点

目录 一. OSPF简介: 二. OSPF原理描述: 三. OSPF的核心内容: 四. OSPF的邻居关系和邻接 五. LSA在各区域中传播的支持情况 一. OSPF简介: 开放式最短路径优先OSPF&#xff08;Open Shortest Path First&#xff09;是IETF组织开发的一个基于链路状态的内部网关协议&…

数字模拟IC设计前端、后端、前仿、后仿新版虚拟机

虚拟化平台&#xff1a;VMware Workstation 15 Pro以上版本 操作系统&#xff1a;CentOS Linux release 7.9.2009 (Core) 一、射频模拟IC设计必备软件 Cadence IC06.18.350/IC23.10.080&#xff08;virtuoso&#xff09; Cadence SPECTRE23.10.538-isr10 Cadence ASSURA04.…

【从问题中去学习k8s】k8s中的常见面试题(夯实理论基础)(十九)

本站以分享各种运维经验和运维所需要的技能为主 《python零基础入门》&#xff1a;python零基础入门学习 《python运维脚本》&#xff1a; python运维脚本实践 《shell》&#xff1a;shell学习 《terraform》持续更新中&#xff1a;terraform_Aws学习零基础入门到最佳实战 《k8…

如何规避DDoS攻击带来的风险?服务器DDoS防御软件科普

DDoS攻击是目前最常见的网络攻击方式之一。其见效快、成本低的特点&#xff0c;使它深受不法分子的“喜爱”。对于未受保护的企业来说&#xff0c;每次DDoS攻击的平均成本为20万美元&#xff0c;当DDoS攻击汹涌而至&#xff0c;缺失详细的保护预案&#xff0c;企业很可能会陷入…

网络安全之渗透测试实战-DC-3-靶机入侵

一、下载靶机DC-3&#xff0c;解压后导入Vmware Workstation https://pan.baidu.com/s/17BcSH6RqC7wuyB7PRNqOow?pwdkc12启动DC-3靶机&#xff0c;由于不知道密码&#xff0c;无需登录 二、靶机的网卡采用的是NAT模式自动获取IP地址&#xff0c;此时我们需要先获取其MAC地址…