当前位置: 首页 > news >正文

2.组合式API知识点(1)

5 组合式API - reactive和ref函数

reactive()

例1:

在组合式api中,不需要用this拿到数据,直接就可以调用

<script setup>// 导入import { reactive } from 'vue'// 执行函数 传入参数 变量接收const state = reactive({msg:'this is msg'})const setSate = ()=>{// 修改数据更新视图state.msg = 'this is new msg'}
</script><template>{{ state.msg }}<button @click="setState">change msg</button>
</template>

ref()

6 组合式API - computed

computed计算属性函数

计算属性小案例

<script setup>
# 原始响应式数组
import { ref } from 'vue'
// 1. 导入computed
import { computed } from 'vue'
const list = ref([1, 2, 3, 4, 5, 6, 7, 8])// 2. 执行函数 return计算之后的值 变量接收
const promptedList = computed(() => {return list.value.filter(item => item > 2)
}setTimeout(() => {list.value.push(9, 10)
}, 3000)
</script><template>
<div>
原始响应式数组- {{ list }} 
</div>
<div>
计算属性数组 - {{ computedList }} 
</div>
</template>

07 组合式API - watch

watch函数

基础使用 - 侦听单个数据

<script setup>
import { ref, watch } from 'vue'
const count = ref(0)
const setCount = () => {count.value++;
}// TODO: watch侦听单个数据源
// ref对象不需要加.value
watch(count, (newVal, oldVal) => {console.log('count变化了', newVal, oldVal)
})</script><template>
<div><button @click="setCount">+{{ count }}</button></div>
</template>

基础使用 - 侦听多个数据

<script setup>
import { ref, watch } from 'vue'
const count = ref(0)
const setCount = () => {count.value++;
}const name = ref('cp')
const changName = () => {name.value = 'pc'
}// TODO: watch侦听多个数据源
// 侦听多个数据源
watch([count, name],([newCount, newName], [oldCount, oldName]) => {console.log('count或者name变化了', [newCount, newName],[oldCount, oldName])})</script><template><div><button @click="setCount">修改count--{{ count }}</button><button @click="changName">修改name--{{ name }}</button></div>
</template>

immediate

deep

精确侦听对象的某个属性

<script setup>
import { ref } from 'vue'
const state = ref({name: 'chaichai',age: 18
}const changeName = () => {// 修改namestate.value.name = 'chaichai-teacher'
}const changeAge = () => {// 修改age*state.value.age = 20
}// TODO:精确侦听某个具体属性
watch(()=>state.value.age,()=>{console.log('age变化了')
}
)<template>
<div><div>当前name -- {{ state.name }} </div><div>当前age -- {{ state.age }} </div><div><button @click="changeName">修改name</button><button @click="changeAge">修改age</button></div>
</div>
</template>

8 组合式API - 生命周期函数

Vue3的生命周期API (选项式 VS 组合式)

生命周期函数基本使用

执行多次

<scirpt setup>
import { onMounted } from 'vue'
onMounted(()=>{// 自定义逻辑
})onMounted(()=>{// 自定义逻辑
})
</script>

http://www.dtcms.com/a/289729.html

相关文章:

  • imx6ull-系统移植篇11——U-Boot 移植(下)
  • 不只是“能用”:从语义化到 ARIA,打造“信息无障碍”Web 应用的实战清单
  • Python关于numpy的基础知识数组的升维
  • leetcode丑数II计算第n个丑数
  • 操作系统总结
  • dify创建OCR工作流
  • springboot-profile
  • [学习] 双边带调制 (DSB) 与单边带调制 (SSB) 深度对比
  • 【Java学习|黑马笔记|Day18】Stream流|获取、中间方法、终结方法、收集方法及其练习
  • Redis面试精讲 Day 4:Redis事务与原子性保证
  • Node.js:常用工具、GET/POST请求的写法、工具模块
  • 基于单片机无线防丢/儿童防丢报警器
  • xavier nx上编译fast-livo过程中出现的问题记录
  • 分享一款免费好用的电视远程推送传输助手TV版软件
  • week4
  • 游戏剧情抄袭侵权比对报告:防止“爆款”变“爆雷”
  • 【分布式 ID】详解百度 uid-generator(源码篇)
  • 【每日算法】专题十_哈希表
  • 代码随想录-250720-划分字母区间
  • 什么是 Linux 发行版?什么是 Linxu 操作系统?
  • python字符串的讲解和应用
  • kotlin Flow快速学习2025
  • Function Callingの进化路:源起篇
  • (5)从零开发 Chrome 插件:Vue3 Chrome 插件待办事项应用
  • 7.20 树hash |字典树模板❗
  • LangChain4j多模型共存+整合SpringBoot
  • springboot websocket 自动重启方案
  • SpringBoot3集成MapstructPlus
  • 抓包工具使用教程
  • 网安-文件上传-upload-labs