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

相关推荐
一只小阿乐4 分钟前
js流式模式输出 函数模式使用
开发语言·javascript·ai·vue·agent·流式数据·node 服务
伯远医学4 分钟前
如何判断提取的RNA是否可用?
java·开发语言·前端·javascript·人工智能·eclipse·创业创新
全栈技术负责人26 分钟前
Claw Code 系统架构与 Agent 运行机制解析
前端·系统架构·ai编程
人人常欢笑26 分钟前
Grafana 表格自定义下载样式。
javascript·react.js·grafana
x-cmd30 分钟前
[x-cmd] 专为 AI Agent 设计的无头浏览器,比 Chrome 速度快 9 倍且少用 16 倍内存 | Lightpanda
前端·chrome·ai·自动化·agent·浏览器·x-cmd
lifewange33 分钟前
JavaScript是什么
开发语言·javascript·ecmascript
chxii41 分钟前
Nginx 正则 location 指令匹配客户端请求的 URI
前端·nginx
qing2222222243 分钟前
Linux:/var/log/journal 路径下文件不断增加导致根目录磁盘爆满
linux·运维·前端
Armouy1 小时前
Nuxt.js 学习复盘:核心概念与实战要点
前端·javascript·学习
safestar20121 小时前
React 19实战:Action、并发与性能,一次告别“意大利面状态”的升级
开发语言·javascript·vue.js