热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

vuethis.$set(对象,对象参数,参数值)赋值后,视图不渲染的问题解决

问题出现场景:电商小程序的购物车页面,当选中某一个店铺时,该店铺中所有的商品都要选中,取消店铺的选中时,店铺中

问题出现场景:
在这里插入图片描述
电商小程序的购物车页面,当选中某一个店铺时,该店铺中所有的商品都要选中,取消店铺的选中时,店铺中的所有商品都要取消选中。

html结构

在这里插入图片描述
checkbox是多选框,具体样式是方形的,为了能够实现圆形,可以在checkbox组件外面的标签中添加checkbox-round的class样式。

<checkbox :checked&#61;"shop.checked" style&#61;"transform:scale(0.7)" &#64;click&#61;"selectShop($event,shop)"/>

解释一下&#xff1a;

  1. checked 根据shop.checked参数来展示选中或者未选中
  2. style是行间样式&#xff0c;圆圈缩小为原来的0.7
  3. click监听复选框的点击事件&#xff0c;默认的第一个参数都是e&#xff0c;就是点击事件本身&#xff0c;第二个参数可以传递数据

selectShop(e,obj){// e代指点击事件本身&#xff0c;obj就是传递的参数。const checked &#61; !obj.checked;for (let i in obj.list) {obj.list[i].forEach(item &#61;> {if (item.specSelected[0].stock) {item.checked &#61; checked;} else {item.checked &#61; false;}})}// 此处通过this.$delete先删除对象中的某个参数&#xff0c;然后再通过this.$set进行赋值&#xff0c;才能够实现视图渲染this.$delete(obj,&#39;checked&#39;);this.$set(obj,&#39;checked&#39;,checked);for (let i in this.shopList) {this.shopList[i].shoppingCartVoList.every(item2 &#61;> {if(!item2.checked){this.allChecked &#61; false;return true;}else{this.allChecked &#61; true;}})}this.calcTotal();
},

知识点如下&#xff1a;

视图渲染问题

在vue的使用过程中&#xff0c;如果需要修改视图中的某个值&#xff0c;一般可以通过直接赋值来实现。
如果针对的是对象中的某个值&#xff0c;可以通过this.$set()的方式来处理。

this.$set()赋值后视图不渲染

this.$set(obj,&#39;checked&#39;,true);这段代码的意思就是&#xff1a;将obj对象中的checked参数更改为true.
但是视图并没有发生改变。

this.$delete()解决this.$set()视图不渲染的问题

百度一番后&#xff0c;发现可以通过this.$delete()先将对象中的某个值删除&#xff0c;然后再通过this.$set()的方式来进行赋值&#xff0c;即可达到视图渲染的效果。


推荐阅读
  • 使用jqTransform插件美化表单
    jqTransform 是由 DFC Engineering 开发的一款 jQuery 插件,专用于美化表单元素,操作简便,能够美化包括输入框、单选按钮、多行文本域、下拉选择框和复选框在内的所有表单元素。 ... [详细]
  • 微信小程序实现类似微博的无限回复功能,内置云开发数据库支持
    本文详细介绍了如何利用微信小程序实现类似于微博的无限回复功能,并充分利用了微信云开发的数据库支持。文中不仅提供了关键代码片段,还包含了完整的页面代码,方便开发者按需使用。此外,HTML页面中包含了一些示例图片,开发者可以根据个人喜好进行替换。文章还将展示详细的数据库结构设计,帮助读者更好地理解和实现这一功能。 ... [详细]
  • UI组件:ext、JqueryEasyUI、miniui、dhtmlx及自定义页面
    这篇博文主要是分析下当前经常使用到的UI组件,他们的效果和功能一般都可以满足我们平常项目使用,但对于较复杂些的项目建议你要斟酌下再决定是否使用ÿ ... [详细]
  • 2.2 组件间父子通信机制详解
    2.2 组件间父子通信机制详解 ... [详细]
  • ClassList对象学习心得与表单事件非空校验技巧
    ClassList对象学习心得与表单事件非空校验技巧 ... [详细]
  • 在 Vue 应用开发中,页面状态管理和跨页面数据传递是常见需求。本文将详细介绍 Vue Router 提供的两种有效方式,帮助开发者高效地实现页面间的数据交互与状态同步,同时分享一些最佳实践和注意事项。 ... [详细]
  • 本文详细介绍了在 Vue.js 前端框架中集成 vue-i18n 插件以实现多语言支持的方法。通过具体的配置步骤和示例代码,帮助开发者快速掌握如何在项目中实现国际化功能,提升用户体验。同时,文章还探讨了常见的多语言切换问题及解决方案,为开发人员提供了实用的参考。 ... [详细]
  • 深入解析微信小程序开发中的全局配置文件设置与优化技巧
    本文深入探讨了微信小程序开发中全局配置文件的设置与优化技巧,详细解析了 `app.js`、`app.json`、`app.wxss` 和 `project.config.json` 的功能与最佳实践。通过合理配置这些文件,开发者可以显著提升小程序的性能和用户体验。文章还介绍了如何利用这些配置文件进行模块化开发和调试,帮助开发者更好地管理和维护小程序项目。 ... [详细]
  • 深入解析Tomcat:开发者的实用指南
    深入解析Tomcat:开发者的实用指南 ... [详细]
  • 本文深入探讨了IO复用技术的原理与实现,重点分析了其在解决C10K问题中的关键作用。IO复用技术允许单个进程同时管理多个IO对象,如文件、套接字和管道等,通过系统调用如`select`、`poll`和`epoll`,高效地处理大量并发连接。文章详细介绍了这些技术的工作机制,并结合实际案例,展示了它们在高并发场景下的应用效果。 ... [详细]
  • 本文深入解析了HTML表格与表单元素,特别是图像映射技术的应用。详细介绍了如何利用 `` 标签实现内容的行列对齐,并探讨了 HTML4 中 Flash 的引入及其在网页设计中的应用。通过实例展示了 `` 标签的使用方法,帮助开发者更好地理解和掌握这些核心元素。 ... [详细]
  • 使用vue.js实现checkbox的全选,和多个的删除欢迎大家来我的博客浏览更多的干货内容www.jaxqin.comtemplate代码:<template> ... [详细]
  • 一进入这个组件页面电脑内存就从40多一直上升到99浏览器也会卡死控制台也看不到返回值不知道这是后台的问题还是前台的问题我别的接口都没事就只有这个接口是这样弄了两天了也找不到原因如 ... [详细]
  • <!DOCTYPEhtml><html> ... [详细]
  • 子元素过滤器在页面设计过程中需要突出某些行时,可以通过基本过滤选择器中的:eq()来实现表单中行的凸显,但不能同时让多个表具有相同的效果。在jQuer ... [详细]
author-avatar
只是遇不到他_740
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有