vue表单动态添加组件,vue动态渲染列表

  vue表单动态添加组件,vue动态渲染列表

  本文主要详细介绍了vue如何实现动态表单的动态渲染组件。本文中的示例代码非常详细,具有一定的参考价值。感兴趣的朋友可以参考一下。

  本文分享了vue实现动态表单动态渲染组件的方法,供大家参考。具体情况如下

  

思路

  首先,在主页上写下所有可能的表单/组件。每个表单/组件的slot属性值应该与后端返回的表单/组件类型相匹配。根据后端返回的数据,动态生成一个槽列表,槽的名称属性要和数据类型匹配。这个列表要放入一个子组件中引入主页面,之前写在主页面上的所有表单/组件都要放入子组件标签中,通过匹配槽来渲染组件。如果插槽不匹配,则不会匹配。

  //主页

  模板

  el-form :model=formData

  //将后端获取的数据传递给子组件,动态生成槽位列表。

  FormItemSlot:formItemList= formItemList

  El-form-item label= switch slot= switch-component

  el开关

  v-model=formData.checked

  active-color=#13ce66

  inactive-color=#ff4949

  /el开关

  /El-表单-项目

  El-form-item标签=名字槽=输入组件

  el-input v-model=formData .用户名/el-input

  /El-表单-项目

  El-form-item标签=角色槽=选择组件

  El-select v-model= formdata . role placeholder=请选择

  el选项

  v-for=选项中的项目

  :key=item.value

  :label=item.label

  :value=item.label

  /el选项

  /el-select

  /El-表单-项目

  /FormItemSlot

  /el格式

  /模板

  脚本

  Improt引入了来自ItemSlot的槽列表子组件(如下)

  导出默认值{

  data() {

  返回{

  表单列表:[

  {type: switch-component ,require: true,label: switch ,key: isOpen},

  {type: input-component ,require: true,label: name ,key: name},

  {type: select-component ,require: true,label: role ,key: role},

  ],

  表单数据:{

  },

  选项:[

  {

  值:“1”,

  标签:“李世民”

  },

  {

  值:“2”,

  标签:“嬴政”

  },

  {

  值:“3”,

  标签:“刘邦”

  },

  {

  值:“4”,

  标签:“项羽”

  },

  {

  值:“5”,

  标签:“范蠡”

  }

  ],

  }

  },

  组件:{

  表单插槽

  },

  }

  /脚本

  ///FormItemSlot.vue插槽列表

  模板

  div class=slot-wrap

  formItemList中的slot v-for=(item,index ):name= item . type /slot

  /div

  /模板

  脚本

  导出默认值{

  名称:表单插槽,

  道具:{

  表单列表:{

  类型:数组,

  默认(){

  return []

  }

  }

  }

  }

  /脚本

  样式范围

  /风格

  以上数据将直接收集到formData中。这种方法的优点是表单数据都在一个页面上,方便数据处理。

  这就是本文的全部内容。希望对大家的学习有帮助,支持我们。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: