Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何将反应性数据传递给Vue 3中的可组合数据

如何将反应性数据传递给Vue 3中的可组合数据
EN

Stack Overflow用户
提问于 2022-01-25 12:28:43
回答 2查看 3.8K关注 0票数 3

是否可以在Vue中声明一个反应性对象,然后在保留反应性的同时将该对象的成员传递给可组合的对象?

例如:

我宣布为“国家”类型:

代码语言:javascript
运行
AI代码解释
复制
type State = { myObjectList: Array<MyObject> }

然后在我的组件中初始化我的状态:

代码语言:javascript
运行
AI代码解释
复制
const state = reactive<State>{( myObjectList: new Array<MyObject>() )}

通过组件挂载上的API调用填充state.myObjectList

我的问题是,是否有可能将state.myObjectList传递给可组合的,并且使该可组合的知道对state.myObjectList中的元素所做的更改?

可合成的,可合成的,如:

代码语言:javascript
运行
AI代码解释
复制
export default function useSimpleCalculator(list: Array<MyObject>){

  const dynamicSumValue = computed(():number => { 
    let sum = 0;
    list.forEach(el => {  sum += el.someValueThatChanges });
    return sum;
  });

 return { dynamicSumValue }

}

然后使用可组合的如下所示:

代码语言:javascript
运行
AI代码解释
复制
const {dynamicSumValue} = useSimpleCalculator(state.myObjectList);

并在对dynamicSumValue中的元素进行更改时对state.myObjectList进行更新

我试图像上面那样实现,但是当我传递state对象上的任何属性时,它在可组合内部失去了它的反应性。

refs传递给可组合似乎有效(即const val = ref(2) ),但这与我们团队为组件范围内的状态数据决定的模式背道而驰。

任何洞察力都会有帮助

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-01-25 12:52:11

正如您已经发现的,您不能将反应性对象的属性传递给函数并维护该属性的反应性。这也经常出现在道具上,在你的例子中,道具只是一个像'state‘这样的反应性对象。您需要将状态转换为refs,并传递一个reactiveforreactive才能正常工作:

代码语言:javascript
运行
AI代码解释
复制
useSimpleCalculator(toRef(state, 'myObjectList'));

代码语言:javascript
运行
AI代码解释
复制
const { myObjectList } = toRefs(state);
useSimpleCalculator(myObjectList)

两者都会起作用吗

票数 8
EN

Stack Overflow用户

发布于 2022-01-25 12:57:31

在需要通过引用传递值(因此是名称)的情况下,参考文献被特别使用。

由于list不应该被修改,所以它可以只是一个计算的引用:

代码语言:javascript
运行
AI代码解释
复制
const myObjectList = computed(() => state.myObjectList);
useSimpleCalculator(myObjectList);

代码语言:javascript
运行
AI代码解释
复制
function useSimpleCalculator(list: Ref<Array<MyObject>> | ComputedRef<Array<MyObject>>){...}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70855278

复制
相关文章
Vue 中,如何将函数作为 props 传递给组件
作者:Michael Thiessen 译者:前端小智 来源:medium 点赞再看,养成习惯本文 GitHub https://github.com/qq44924588... 上已经收录,更多往
前端小智@大迁世界
2020/05/18
8.6K0
可组合的 Vue
2021年5月来自全球各地的Vue.js开发者齐聚线上,一起见证了VueConf 2021 杭州的成功举办。
@超人
2021/07/05
4890
可组合的 Vue
[Linux] tcpdump 过滤传递给指定端口的数据
tcpdump想要捕获发送给imap服务器的数据 , 可以使用下面的参数 , 默认端口是143
唯一Chat
2020/04/16
9940
如何将多个参数传递给 React 中的 onChange?
在 React 中,一些 HTML 元素,比如 input 和 textarea,具有 onChange 事件。onChange 事件是一个非常有用、非常常见的事件,用于捕获输入框中的文本变化。有时候,我们需要将多个参数同时传递给 onChange 事件处理函数,在本文中,我们将介绍如何实现这一目标。
网络技术联盟站
2023/06/07
3.2K0
网络数据是如何传递给进程的
在用户态空间,调用发送数据接口 send/sento/wirte 等写数据包,在内核空间会根据不同的协议走不同的流程。以TCP为例,TCP是一种流协议,内核只是将数据包追加到套接字的发送队列中,真正发送数据的时刻,则是由TCP协议来控制的。TCP协议处理完成之后会交给IP协议继续处理,最后会调用网卡的发送函数,将数据包发送到网卡。
luoxn28
2020/05/18
1.6K0
vue传参页面刷新数据丢失问题
在做vue的时候,经常会遇到组件之间数据的传递问题,通过params或者query传参,但是,当页面刷新的时候,数据会丢失,找不到数据。今天经过总结,解决了这个问题。通过了一下几种情况进行传值:
小周sir
2019/09/23
2.9K0
vue传参页面刷新数据丢失问题
vue传递给后端时间格式问题
解释: @DateTimeFormat(pattern = “yyyy-MM-dd HH:mm:ss”)设定接受前端传递过来的时间格式 @JsonFormat(timezone = “GMT+8”, pattern = “yyyy-MM-dd HH:mm:ss”)注解:把数据库中datetime的格式取出来转化为yyyy-MM-dd HH:mm:ss格式。
知识浅谈
2023/09/07
5400
如何编写优质的可组合的 Vue—Vue核心成员分享
2021年5月来自全球各地的Vue.js开发者齐聚线上,一起见证了VueConf 2021 杭州的成功举办。
winty
2021/07/01
5870
如何编写优质的可组合的 Vue—Vue核心成员分享
将多个属性传递给 Vue 组件的几种方式
所有使用基于组件的体系结构(如Vue和React)的开发人员都知道,创建可重用组件是很困难的,而且大多数情况下,最终会通过传入大量的属性,以便从外部更容易地控制和自定义组件。这并不坏,但是传递大量属性确实会变得有点麻烦和丑陋。
前端小智@大迁世界
2020/05/11
2K0
云原生系统可组合性的商业价值
作者 | Bill Mulligan 译者 | 平川 策划 | 丁晓昀 纵观云原生生态,不管是云原生还是开源,都有很大的商业价值。时至今日,相关公司总市值接近 143 亿美元,融资接近 295 亿美元。在外人看来这可能很难理解,“免费”的东西如何能挣到这么多钱?实际上,免费和开源并不会降低这些项目为企业和终端用户提供服务的价值。相反,开源生态系统的可组合性提升了整个生态系统的创新和价值。 可组合性相当于复利 在金融领域,复利是世界第八大奇迹,因为钱能生钱。在软件、IT 和开源领域,可组合性是世
深度学习与Python
2023/03/29
3300
云原生系统可组合性的商业价值
vue子组件给父组件传值 接收不到数据_vue父向子组件传值
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/10/02
2K0
可组合的 Vue——来自Vue.js 核心团队成员,VueUse 作者的分享
2021年5月来自全球各地的Vue.js开发者齐聚线上,一起见证了VueConf 2021 杭州的成功举办。
落落落洛克
2021/07/05
8060
可组合的 Vue——来自Vue.js 核心团队成员,VueUse 作者的分享
Activity数据回传
上一节学习了将简单的数据从MainActivity传递到SecondActivity,本节一起来学习数据如何从SecondActivity回传到MainActivity。 一、简介 前面己经提到,Activity 还提供了一个 startActivityForResult(Intent intent, int requestCode) 方法来启动其他Activity。该方法用于启动指定Activity,而且期望获取指定Activity返回的结果。这种请求对于实际应用也是很常见的,例如应用程序
分享达人秀
2018/03/26
1.6K0
Activity数据回传
iframe怎么将参数传递给vue 父组件
在子页面的iframe中想将参数传递给Vue父组件,可以使用postMessage()方法将数据发送给父窗口。父组件可以通过监听message事件来接收并处理这些数据。
王小婷
2023/08/10
1.6K0
python接口测试:如何将A接口的返回值传递给B接口
一种方式是可以通过数据库来获取,但是通过这次接口测试,我发现读取数据库有一个缺点:速度慢
冰霜
2022/03/15
2.1K0
vue3 路由传参_vue router传参
vue 路由传参的使用场景一般都是应用在父路由跳转到子路由时,携带参数跳转。传参方式可划分为 params 传参和 query 传参,而 params 传参又可分为在 url 中显示参数和不显示参数两种方式,这就是vue路由传参的三种方式。
全栈程序员站长
2022/11/01
6.1K0
如何将数据拆分?
在数据量足够大的时候,我们会遇上如何将数据拆分到不同分区,使每个分区保存的数据量足够小。这里面牵扯到的主要是如何分区,以及二级索引如何处理,分区后的request怎么分配都是值得深思的问题。
哒呵呵
2018/08/06
1.1K0
如何将数据拆分?
从头创建您自己的vue.js——第4部分(构建反应性)
状态反应是当应用程序(一组变量)的状态发生变化时,我们做某事(反应)。我们分两步来完成:
公众号---人生代码
2020/09/23
7950
VUE 如何将父组件中的数据传递到子组件中
因为异步调用的问题,如果我不采取手段,子页面没有办法获得父页面中的数据,页面将会显示为 没有数据。
HoneyMoose
2022/09/14
7.1K0
VUE 如何将父组件中的数据传递到子组件中
可组合的服务器,是未来数据中心的首选吗 ?
随着互联网技术的发展,服务器越来越多的被人熟知,这个看起来“冷冰冰的大家伙”,正在我们生活中发挥着越来越重要的作用。
科技云报道
2022/04/15
1.2K0
可组合的服务器,是未来数据中心的首选吗 ?

相似问题

Vue数据属性非反应性

335

Vue.js -如何将非反应性数据传递给子组件

30

Vue反应性:通过提供和注入创建反应性数据

22

Post请求Vue上的数据反应性

32

Vue JS -数据未进行反应性更新

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档