vue3组合式函数如何接收响应式状态

Index.vue:

javascript 复制代码
<script setup>
import { ref, onMounted } from 'vue'
import useList from './useList'
import './index.css'

const indexCount = ref(0)

const { count, handleClick } = useList(indexCount)

const handleIndexCount = () => {
  indexCount.value++
}



onMounted(() => {})
</script>

<template>
  <div class="m-home-wrap">
    <button @click="handleIndexCount">{{ indexCount }}</button>

    <button @click="handleClick">{{ count }}</button>
    <div class="m-home-demo"></div>
  </div>
</template>

<style></style>

useList.js:

javascript 复制代码
import { ref, onMounted, watchEffect, toValue } from 'vue'

const useList = (props) => {
  const count = ref(0)


  watchEffect(() => {
    let value = toValue(props)
    console.log(value)
    count.value = value
  })

  const handleClick = () => {
    count.value++
  }

  onMounted(() => {
    console.log(1)
  })

  return {
    count,
    handleClick,
  }
}

export default useList

watchEffect的作用:

响应式地追踪其依赖

toValue的作用:

toValue() 是一个在 3.3 版本中新增的 API。它的设计目的是将 ref 或 getter 规范化为值。如果参数是 ref,它会返回 ref 的值;如果参数是函数,它会调用函数并返回其返回值

人工智能学习网站

https://chat.xutongbao.top

相关推荐
溪饱鱼2 分钟前
Nuxt3能上生产吗?
前端
咖啡教室13 分钟前
前端开发中JavaScript、HTML、CSS常见避坑问题
前端·javascript·css
LaoZhangAI2 小时前
Claude MCP模型上下文协议详解:AI与外部世界交互的革命性突破【2025最新指南】
前端
LaoZhangAI3 小时前
2025最全Cursor MCP实用指南:15个高效工具彻底提升AI编程体验【实战攻略】
前端
Kagerou3 小时前
vue3基础知识(结合TypeScript)
前端
市民中心的蟋蟀3 小时前
第五章 使用Context和订阅来共享组件状态
前端·javascript·react.js
逆袭的小黄鸭3 小时前
JavaScript 闭包:强大特性背后的概念、应用与内存考量
前端·javascript·面试
carterwu3 小时前
各个大厂是怎么实现组件库和相应扩展的?基础组件、区块、页面
前端
Face3 小时前
promise 规范应用
前端
Mintopia3 小时前
Node.js 中 fs.readFile API 的使用详解
前端·javascript·node.js