当前位置: 首页 > news >正文

v-model绑定checkbox无法动态更新视图

在vue2中使用v-model绑定checkbox

            <input type="checkbox" v-model="isChecked" :value='isChecked' @change="handleCheckboxChange" />

监听change事件,并在change事件中做一些特殊处理,比如用户在登录时有没有阅读过隐私协议,在此之前有没有先填写手机号,如果没有通过校验,对于checkbox选中状态下应该取消选中。

问题

<body><div id="app"><div><input type="checkbox" v-model="isChecked" :value='isChecked' @change="handleCheckboxChange" /><label>{{ isChecked }}</label></div></div>
</body></html>
<script>var app = new Vue({el: '#app',data() {return {isChecked: false};},methods: {handleCheckboxChange() {console.log("checkbox ===>now:" + this.isChecked)this.isChecked = !this.isChecked;console.log("run[this.isChecked = !this.isChecked;] checkbox ===>now:" + this.isChecked)}}})
</script>

在这里插入图片描述
再执行this.isChecked = !this.isChecked后,checkbox的状态依旧是选中状态,并没有动态更新视图,v-model绑定的值为false,但是依旧是选中状态

为什么

首先来看v-model对于checkbox的原理:
在这里插入图片描述
v-model对于checkbox是实现的checked与change事件的结合(语法糖),通过代码我们也可以看出,属性已经很好的完成了响应的变化,这就可能是由于html元素input本身的原因了,再去看一下checkbox的属性:
在这里插入图片描述可以发现,checked只会在首次渲染,随后的checked值改变不再反应该变化,由此可见,为什么checkbox样式框没有发生变化的原因了

解决方案

1.刷新组件,页面重新渲染

      this.$nextTick(() => {this.isChecked = !this.isChecked;});

2.绑定checkbox的value值

<input type="checkbox" :value='isChecked' @change="handleCheckboxChange" />

使用v-model没有value属性
在这里插入图片描述

http://www.lryc.cn/news/103758.html

相关文章:

  • 原生html—摆脱ps、excel 在线绘制财务表格加水印(html绘制表格js加水印)
  • 微信小程序配置上传多个u-upload上传
  • python使用win32com库实现对Excel的操作
  • <Maven>项目依赖导入Maven本地仓库命令
  • 爬虫006_python中的运算符_算术运算符_赋值运算符_复合赋值运算符_比较运算符_逻辑运算符_逻辑运算符性能提升---python工作笔记024
  • CPU Architecture Methodologies
  • Spring的@Scheduled
  • IP隧道技术原理
  • Docker私有仓库
  • LLM微调 | Prefix-Tuning, Prompt-Tuning, P-tuning, P-tuning-v2
  • Ansible 的脚本 --- playbook 剧本
  • CSP-J模拟赛 / 买文具
  • leecode算法--每日一题1
  • LViT:语言与视觉Transformer在医学图像分割
  • 蓝桥杯上岸每日N题 第五期(山)!!!
  • IDEA Writing classes... 比较慢
  • opencv中轮廓相关属性
  • Leetcode 144. 二叉树的前序遍历
  • 医学影像PACS系统源码:多功能服务器和阅片系统
  • php 生成连续递增的Excel列索引 可以控制多少列
  • Openstack等私有云
  • MySQL 8.0详细安装配置教程
  • pytest 入门
  • 分布式缓存数据一致性-解决方案
  • Java设计模式-享元模式
  • idea模块的pom.xml被划横线,不识别的解决办法
  • ffmpeg 中 av_log 是怎样工作的?
  • HTML+CSS+JavaScript:轮播图自动播放
  • python 自动化数据提取之正则表达式
  • 分布式事务之本地事务