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

相关推荐
轻口味17 分钟前
Vue.js 什么是 Vuex?
前端·javascript·vue.js
LCG元22 分钟前
Vue.js组件开发-实现全屏平滑移动、自适应图片全屏滑动切换
前端·javascript·vue.js
苹果醋343 分钟前
Win10安装MySQL、Pycharm连接MySQL,Pycharm中运行Django
运维·vue.js·spring boot·nginx·课程设计
我的青春不太冷2 小时前
深入探讨:服务器如何响应前端请求及后端如何查看前端提交的数据
运维·服务器·前端
16年上任的CTO2 小时前
一文大白话讲清楚webpack进阶——8——Module Federation
前端·webpack·node.js·模块联邦·federation
&白帝&3 小时前
在 Vue 3 中,怎么管理环境变量
前端·javascript·vue.js
橘猫0.o4 小时前
【C语言】static关键字的三种用法
c语言·前端·javascript
我命由我123454 小时前
Tailwind CSS - Tailwind CSS 引入(安装、初始化、配置、引入、构建、使用 Tailwind CSS)
前端·javascript·css·npm·node.js·js
KrityCat5 小时前
Vue3的el-table-column增加跳转其他页面
开发语言·javascript·vue.js
KrityCat5 小时前
Vue3的el-table-column下拉输入实时查询API数据选择的实现方法
javascript·vue.js·ecmascript