javascript - Vuesjs 3 组合中的计算函数返回 refImpl
问题描述
我正在尝试使用 Vuejs 3 中的计算函数,该函数使用组合在 .js 文件中外部化。
这是我的 .vue 文件,它非常简单:增加计数变量以触发计算函数。
<template>
<div>
{{ computedCount }}
</div>
</template>
<script setup>
import { ref } from 'vue'
import useComputedValue from './js/useComputed' // Import computed function
const count = ref(0) // Instanciate the count variable
count.value += 1 // Trigger the compute
const computedCount = useComputedValue(count)
console.debug(computedCount)
</script>
这是我的 useComputed.js 文件:
import { computed } from 'vue'
export default function useComputedValue(count) {
const computedValue = computed(() => count.value * 5)
return {
computedValue,
}
}
该函数只是将参数中给出的值乘以 5。问题是 console.log(computedCount) 给出了一个
{computedValue: ComputedRefImpl}
computedValue: ComputedRefImpl {dep: Set(1), _dirty: false, __v_isRef: true, effect: ReactiveEffect, _setter: ƒ, …}
[[Prototype]]: Object
并且在模板中,它显示 { "computedValue": 5 } 因此,该函数返回的不是乘以 5 参数的值,而是一个包装对象 refImpl。
该示例改编自文档:Composition doc
如果我直接在 .vue 文件的标签中声明计算函数而不从另一个文件导入它,它会按预期工作:该函数返回计数值乘以 5。
显然,这是我不太清楚的事情......但是什么?
我正在使用 3.2 和标签,因此不再需要从脚本标签中的 setup() 返回:3.2
提前谢谢你。
解决方案
推荐阅读
- c++ - 尝试将数据从记录读取到程序中时难以捉摸的错误(C++)
- mysql - 加快缓慢的 MySQL 查询(计数),并可能使用 MySQL 进行统计
- python - 如何计算唯一名称?
- dart - 颤振引脚输入字段
- php - 重新排序,加入和删除数组php的元素
- python - 如何使用 BeautifulSoup 从所有脚本中提取正确的脚本
- uwp - MediaElement 在播放开始时打嗝
- python - 从 EntryBox 中获取文本,然后将其写入 txt 文件
- java - List中的java泛型语句
- python - Process.run() 和 Process.start() 之间的区别