Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >反应性内部的Vue -组合API数组没有在DOM中更新。

反应性内部的Vue -组合API数组没有在DOM中更新。
EN

Stack Overflow用户
提问于 2021-09-08 04:57:58
回答 1查看 3.1K关注 0票数 2

我在反应性()内部有一个帖子数组,我希望它被更新为onMounted。

我该怎么做?

模板:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<q-card>
  <board-item-list :items="items" v-if="items.length" />
  <board-empty v-else />
</q-card>

脚本

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import { reactive, onMounted } from "vue";
import { posts } from "./fake-data.js";
export default {
  setup() {
    let items = reactive([]);
    ...
    onMounted(() => {
      // to fill the items with posts.
      items.values = posts; // I tried this not working
      items = posts; //I tried this not working
      console.log(items);
    });
    ...
    return {
      ...
      items,
    };
  },
};
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-08 05:03:28

尝试使用ref而不是reactive,或者将items定义为处于反应性状态的嵌套字段,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import { reactive, onMounted } from "vue";
import { posts } from "./fake-data.js";
export default {
  setup() {
    let state= reactive({items:[]});
    ...
    onMounted(() => {
     
      state.items = posts; 
      console.log(state.items);
    });
    ...
    return {
      ...
      state,
    };
  },
};

在模板中:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<q-card>
  <board-item-list :items="state.items" v-if="state.items.length" />
  <board-empty v-else />
</q-card>

如果您想去掉模板中的state,可以使用toRefs

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import { reactive, onMounted,toRefs } from "vue";
import { posts } from "./fake-data.js";
export default {
  setup() {
    let state= reactive({items:[]});
    ...
    onMounted(() => {
     
      state.items = posts; 
      console.log(state.items);
    });
    ...
    return {
      ...toRefs(state),//you should keep the 3 dots
    };
  },
};
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69103568

复制
相关文章
Vue中的DOM操作
1、在要获取的标签中添加 ref="xx" 示例: <button ref="btn">一个按钮</button> 2、在 mounted 钩子中使用 this.$refs.xx. 获取并操作 DOM 元素 示例: mounted() { this.$refs.btn.style.backgroundColor="red" } 3、vue 操作 DOM 完整示例: template 部分: <template> <div> <button ref="btn">一个按钮</button>
Leophen
2019/08/23
1.3K0
vue中的虚拟dom
DOM操作是Web开发中非常昂贵和低效的操作,尤其是在用户界面频繁更新的情况下。此时,在每次数据更新时重新渲染整个DOM树会导致应用程序性能下降。
九仞山
2023/10/14
1690
vue 数组对象更新
在使用数组的时候,数组内部数据发生改变,但是与数组绑定的页面的数据却没有发生变化。
py3study
2021/04/09
1.9K0
vue 数组对象更新
Vue:Vue中操作DOM方法
jQuery的杰出的DOM操作能力相信已经深入每一个前端Coder,在使用Vue之前我并不能习惯数据驱动的概念,仍然幻想着把jQuery引入到Vue中,直到深入使用Vue以后才发现,原来许多jQ操作DOM的方法都不需要,数据驱动比手工操作DOM方便快捷许多。尽管如此,Vue仍然给了我们原生DOM控制的能力。 环境是由Vue-Cli搭建的webpack模板,省略CSS部分 HTML部分 <div id="app"> <div class="box-wrapper" > <div clas
MrTreasure
2018/05/10
3.3K0
揭秘Vue中的Virtual Dom
Vue.js 2.0引入Virtual DOM,比Vue.js 1.0的初始渲染速度提升了2-4倍,并大大降低了内存消耗。那么,什么是Virtual DOM?为什么需要Virtual DOM?它是通过什么方式去提升页面渲染效率的呢?这是本文所要探讨的问题。
浪里行舟
2019/07/02
1.1K0
揭秘Vue中的Virtual Dom
Vue中虚拟DOM的理解
Virtual DOM是一棵以JavaScript对象作为基础的树,每一个节点称为VNode,用对象属性来描述节点,实际上它是一层对真实DOM的抽象,最终可以通过渲染操作使这棵树映射到真实环境上,简单来说Virtual DOM就是一个Js对象,用以描述整个文档。
WindRunnerMax
2020/08/27
6210
vue在浏览器中对DOM渲染探究
“世间万物都由分子构成。用气将万物的分子打散,分解眼前事物,再将分子重组,在短暂的瞬间,可以凝成时空停顿,甚至逆转时空。”
Yerik
2022/04/06
1.2K0
前端系列12集-全局API,组合式API,选项式API的使用
The setup() hook serves as the entry point for Composition API usage in components in the following cases: 在以下情况下, setup() 钩子用作组件中 Composition API 使用的入口点:
达达前端
2023/10/08
5260
React数组变化之后,视图没有更新
react数组变化之后,视图没有更新 数组保存在state中,修改数组之后视图没有更新 function updateData(data) { this.setState({ data: data }) } 上面代码是修改状态值的,这样设置会导致视图没有更新,修改为如下代码即可: function updateData(data) { this.setState({ data: [...data] }) }
寻找石头鱼
2020/06/05
2.9K0
分享几个在 VUE3 项目中常用的封装组合API
本文将介绍如何使用vue3来封装一些比较有用的组合api,主要包括背景、实现思路以及一些思考。
前端达人
2022/04/18
2K0
vue组合式API最佳实践
组合式API是vue2项目过渡vue3的一种友好方案,在历史项目逐步迁移到vue3中,有历史包袱原因,一下子升级带来的问题可能比较多,composition-api天然兼容vue2,在vue2中使用组合式API让你提前感受vue3的各种姿势,vue3已经出来3年了,都2022了,vue祖师爷赏饭吃,相信你跟笔者一样早已跃跃欲试。
Maic
2022/07/28
1.1K0
vue组合式API最佳实践
在没有DOM操作的日子里,我是怎么熬过来的(中)
前言 继上篇推送之后,在掘金、segmentfault、简书、博客园等平台上迅速收到了不俗的反馈,大部分网友都留言说感同身受,还有不少网友追问中篇何时更新。于是,闰土顺应呼声,在这个凛冽的寒冬早晨,将中篇热文滚烫呈上。 搬好小板凳,接下来,正文从这开始~ 在上篇的众多留言中,有位网友的评论比较具有代表性,摘出来供大家一阅: “ 同感啊楼主 比如做tab的时候,以前jq就是切换一下class,现在vue是切换数据,再根据数据显示class,这弯绕的啊 ” 当然,有评论就有回复,请看下面这位网友是怎么回复他的:
闰土大叔
2018/04/12
1.6K0
在没有DOM操作的日子里,我是怎么熬过来的(中)
[译] 对比 React Hooks 和 Vue Composition API
原文:https://dev.to/voluntadpear/comparing-react-hooks-with-vue-composition-api-4b32
江米小枣
2020/06/15
6.7K0
vue遍历数组中的数组_vue数组转json
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/03
3.8K0
爬虫+反爬虫+js代码混淆
vue2 的双向数据绑定是利用ES5 的一个 API Object.defineProperty()对数据进行劫持 结合 发布订阅模式的方式来实现的。
李昂君
2022/09/29
5.6K0
爬虫+反爬虫+js代码混淆
2020年,需要了解 Vue3 的哪些知识
Vue 是目前前沿开发中最热门的框架之一,到2019年每周的下载率翻了一番。2020 年初 Vue3的发布还会增加它的受欢迎程度。
前端小智@大迁世界
2020/11/03
1.4K0
2020年,需要了解 Vue3 的哪些知识
vue3组合式api
这个思想上有点类似流程控制框架,将一个组件中的多个关注点分离、抽取,然后能进一步复用、编排
阿超
2022/08/21
3000
30 道 Vue 面试题,内含详细讲解(下)
其中,View 变化更新 Data ,可以通过事件监听的方式来实现,所以 Vue 的数据双向绑定的工作主要是如何根据 Data 变化更新 View。
公号:咻咻ing
2019/09/10
1K0
30 道 Vue 面试题,内含详细讲解(下)
vue select当前value没有更新到vue对象属性
vue是一款轻量级的mvvm框架,追随了面向对象思想,使得实际操作变得方便,但是如果使用不当,将会面临着到处踩坑的危险,写这篇文章的目的是我遇到的这个问题在网上查了半天也没有发现解决方案,最终研究了vue的源码中有关select元素的部分找到了答案,下面简单介绍我踩的关于select的一个坑:
johnhuster的分享
2022/03/29
2.8K0
Vue中的封装api
我做vue和react的项目都是用的这一套api(时间戳是我新加的),接口,方法分开,便于管理。
刘亦枫
2020/03/19
1.1K0

相似问题

Vue组合API在v-for内部不是反应性的?

11

Vue组合反应性属性在组件中没有更新。

20

Vue 3数组的组合API - ref() vs反应性()

21

没有在模板Vue3组合API上更新反应性对象。

11

Vue组合API和反应性类

13
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文