Vue进阶(幺肆零):vue 新增数组或对象更新后,视图不更新的解决方案_vue 数组不显示(1)

❤️ 谢谢支持

喜欢的话别忘了 关注、点赞哦~。

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

前端校招面试题精编解析大全

文章目录

一、前言

在项目开发过程中,若将页面元素全部绑定于一个表单中,且页面中的某些元素并未直接获得,在获取页面操作值时就会出现意外效果,例如不能重置页面元素。

二、场景复现

需求:在使用el-select设计表单下拉框时,若后台返回的下拉框数组长度为1,则默认选中第一个元素。

思路:后台返回值后直接将第一个元素的value赋值给el-selectv-model

created() {
....
    this.MissionTemplateForm.state = this.StatusOptions[0].display_name
  },

但是后台方法返回值后,为el-select赋值前,MissionTemplateForm已经赋值了response.returnobj,导致MissionTemplateForm的结构被破坏,故需要对MissionTemplateForm中的属性进行重新设定。需要使用

Vue.set( target, propertyName/index, value )

针对在data中定义的属性或者对象的键,vue采用双向绑定响应式更新视图方式,比如有个data:{ test : 'test'};,通过修改 test的值就可以自动更新相关的视图。但是,如果对象属性后面再添加一个新的属性进去然后修改是没法自动更新的,这就涉及vue的双向绑定原理。

vue 默认将data 属性添加到侦察器(发布者——订阅者模式)上观察,如果有变化就响应视图更新,后面新增的属性和对象是没有实现添加到观察器这步操作的,所以需要手动添加,就涉及用到Vueset方法。

Vue.set(app.arr,1,'qq')

参数:

第一个参数想要修改的数组或者对象。

总结一下

面试前要精心做好准备,简历上写的知识点和原理都需要准备好,项目上多想想难点和亮点,这是面试时能和别人不一样的地方。

还有就是表现出自己的谦虚好学,以及对于未来持续进阶的规划,企业招人更偏爱稳定的人。

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

万事开头难,但是程序员这一条路坚持几年后发展空间还是非常大的,一切重在坚持。

为了帮助大家更好更高效的准备面试,特别整理了《前端工程师面试手册》电子稿文件。

前端面试题汇总

JavaScript

性能

linux

前端资料汇总

前端工程师岗位缺口一直很大,符合岗位要求的人越来越少,所以学习前端的小伙伴要注意了,一定要把技能学到扎实,做有含金量的项目,这样在找工作的时候无论遇到什么情况,问题都不会大。

.cn/img_convert/6e0ba223f65e063db5b1b4b6aa26129a.png)

前端工程师岗位缺口一直很大,符合岗位要求的人越来越少,所以学习前端的小伙伴要注意了,一定要把技能学到扎实,做有含金量的项目,这样在找工作的时候无论遇到什么情况,问题都不会大。

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue 3中,`setup`函数中返回的响应式对象使用的是`ref`和`reactive`。当你在`setup`中创建响应式数组时,你需要使用`reactive`而不是`ref`。因为`ref`是用来包装单一的值,而不是数组。 如果你使用了`reactive`来创建响应式数组,但是视图数组更新后仍然没有更新,可能是因为你直接修改了数组的某个元素,而没有使用Vue提供的修改数组的方法,比如`push`、`pop`、`shift`、`unshift`、`splice`等。这些方法会触发Vue的响应式系统来更新视图。 如果你不想使用Vue提供的方法来修改数组,你可以手动调用`trigger`方法来通知Vue更新视图,例如: ```js import { reactive, trigger } from 'vue' const state = reactive({ list: ['item1', 'item2', 'item3'] }) function updateList() { state.list[0] = 'new item' trigger(state, 'list') } ``` 在上面的示例中,我们手动修改了数组的第一个元素,然后调用了`trigger`方法来通知Vue更新`list`这个响应式数组视图。 另外,还需要注意的是,如果你在`setup`函数中使用了`computed`来计算数组的值,那么你需要将该`computed`放在数组的依赖项中,以确保数组更新时计算属性能够重新计算并更新视图。例如: ```js import { reactive, computed } from 'vue' const state = reactive({ list: ['item1', 'item2', 'item3'], count: 0 }) const computedList = computed(() => { state.count // 将count放在依赖项中 return state.list.map(item => item.toUpperCase()) }) ``` 上面的示例中,我们将`count`放在了`computedList`的依赖项中,这样当数组更新时,`computedList`会重新计算并更新视图

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值