重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这篇文章将为大家详细讲解有关如何在Vue中动态生成el-checkbox,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
创新互联为企业级客户提高一站式互联网+设计服务,主要包括成都做网站、成都网站建设、成都APP应用开发、微信小程序定制开发、宣传片制作、LOGO设计等,帮助客户快速提升营销能力和企业形象,创新互联各部门都有经验丰富的经验,可以确保每一个作品的质量和创作周期,同时每年都有很多新员工加入,为我们带来大量新的创意。定义的 data 的 form 里面是空对象,需要动态生成里面的 key
export default { data() { return { form: {} } }, }
从后端接口得到 checkList,这个就是动态生成的表单数据
v-for 循环 checkList,得到 key,然后直接 v-model=“form.key”
动态生成 form 里面的 key
{{ item2.value }}
问题来了
当页面点击动态生成的 CheckBox 方框,会出现全选的情况,查看 vue 数据,显示如下:
绑定的数据居然是 Boolean 类型,怪不得会出现要么全部勾选,要不全部不选
正常的情况 CheckBox 的绑定数据类型是数组形式
假设我在动态生成的时候,就它置为数组格式:
this.checkList.forEach(item => { let key = item.code this.form[key] = [] })
但发现还是没用,会发现点击任何 CheckBox 都无法勾选
解决
这是 vue 的深入响应式原理,官方说法和解决方法:
Vue 不允许在已经创建的实例上动态添加新的根级响应式属性 (root-level reactive property)
然而它可以使用 Vue.set(object, key, value)
方法将响应属性添加到嵌套的对象上
现在明白了,可以使用 Vue.set
方法解决这个深入式响应原理
this.checkList.forEach(item => { let key = item.code this.$set(this.form, key, []) })为什么要使用Vue
Vue是一款友好的、多用途且高性能的JavaScript框架,使用vue可以创建可维护性和可测试性更强的代码库,Vue允许可以将一个网页分割成可复用的组件,每个组件都包含属于自己的HTML、CSS、JavaScript,以用来渲染网页中相应的地方,所以越来越多的前端开发者使用vue。
关于如何在Vue中动态生成el-checkbox就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。