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

相关推荐
蓝婷儿8 分钟前
第二章支线八 ·CSS终式:Tailwind与原子风暴
前端·css
vanora111132 分钟前
Vue在线预览excel、word、ppt等格式数据。
前端·javascript·vue.js
树上有只程序猿34 分钟前
低代码不是炫技,而是回归需求的必然答案
前端
比特森林探险记38 分钟前
Go 中 map 的双值检测写法详解
java·前端·golang
溪饱鱼40 分钟前
React源码阅读-fiber核心构建原理
前端·javascript·react.js
陈随易1 小时前
Element Plus 2.10.0 重磅发布!新增Splitter组件
前端·后端·程序员
陈随易1 小时前
2025年100个产品计划之第11个(哆啦工具箱) - 像哆啦A梦口袋一样丰富的工具箱
前端·后端·程序员
xiaogg36781 小时前
网站首页菜单顶部下拉上下布局以及可关闭标签页实现vue+elementui
javascript·vue.js·elementui
胡gh1 小时前
JS面向对象程序设计(OOP)与原型机制,到底是如何一步步走向实用的
javascript
前端缘梦1 小时前
微信小程序登录方案实践-从账号体系到用户信息存储
前端·微信小程序