使用form-create动态生成vue自定义组件和嵌套表单组件

[github] | [说明文档]

示例

  1. let rule = [
  2. {
  3. type:'row',
  4. children:[
  5. {
  6. type:'i-col',
  7. props:{
  8. span:12
  9. },
  10. children:[
  11. formCreate.maker.input('商品名称','goods_name','iphone'),
  12. formCreate.maker.number('商品加个','goods_price',8688)
  13. ]
  14. },
  15. {
  16. type:'i-col',
  17. props:{
  18. span:12
  19. },
  20. children:[
  21. formCreate.maker.dateTime('创建时间','create_at'),
  22. formCreate.maker.radio('是否显示','is_show').options([
  23. {value:1,label:'显示'},
  24. {value:0,label:'不显示'}
  25. ])
  26. ]
  27. }
  28. ]
  29. }
  30. ]

maker.create

通过建立一个虚拟 DOM的方式生成自定义组件

生成

Maker

  1. let rule = [
  2. formCreate.maker.create('i-button').props({
  3. type:'primary',
  4. field:'btn'
  5. loading:true
  6. })
  7. ]
  8. $f = formCreate.create(rule);

上面的代码是通过 maker 生成器动态生成一个正在加载的 iview 按钮组件

Json

  1. let rule = [
  2. {
  3. type:'i-button',
  4. field:'btn'
  5. props:{
  6. type:'primary',
  7. field:'btn',
  8. loading:true
  9. }
  10. }
  11. ]
  12. $f = formCreate.create(rule);

上面的代码是通过json方式动态生成一个iview 按钮组件

修改

可以通过一下两种方式动态修改组件的配置项

通过rule修改组件生成规则

  1. rule[0].props.loading = false;

通过$f.component()方法获取组件的生成规则并修改

  1. $f.component().btn.props.loading = false;

maker.template

通过模板的方式生成自定义组件,maker.createTmp方法是该方法的别名

生成

Maker

  1. let rule = [
  2. formCreate.maker.template('<i-button :loading="loading">{{text}}<i-button>',new Vue({
  3. data:{
  4. loading:true,
  5. text:'正在加载中...'
  6. }
  7. }))
  8. ]

上面的代码是通过 maker 生成器动态生成一个正在加载的 iview 按钮组件

Json

  1. let rule = [
  2. {
  3. type:'template',
  4. template:'<i-button :loading="loading">{{text}}<i-button>',
  5. vm:new Vue({
  6. data:{
  7. loading:true,
  8. text:'正在加载中'
  9. }
  10. })
  11. }
  12. ]
  13. $f = formCreate.create(rule);

上面的代码是通过Json方式动态生成一个iview 按钮组件

修改

可以通过一下两种方式动态修改vm组件内部的值

通过rule获取自定义组件的vm并修改

  1. rule[0].vm.text = '加载完毕';
  2. rule[0].vm.loading = false;

通过$f.component()方法获取自定义组件的vm并修改

  1. $f.component().btn.vm.text = '加载完毕';
  2. $f.component().btn.vm.loading = false;

 

使用form-create动态生成vue组件的更多相关文章

  1. js动态生成vue组件

    代码奉上 install (Vue, options) { Vue.prototype.$message = function (message){ let Constructor = Vue.ext ...

  2. 关于动态生成data组件

    /*! * WeX5 v3 (http://www.justep.com) * Copyright 2015 Justep, Inc. * Licensed under Apache License, ...

  3. 解放生产力,自动化生成vue组件文档

    一.现状 Vue框架在前端开发中应用广泛,当一个多人开发的Vue项目经过长期维护之后往往会沉淀出很多的公共组件,这个时候经常会出现一个人 开发了一个组件而其他维护者或新接手的人却不知道这个组件是做什么 ...

  4. vite插件-自动生成vue组件文档

    特点 支持热更新 快速启动,依赖于 vite,无需另起服务 自动生成组件导航 ui 采用了vant-ui的样式 核心方法覆盖率达到了 92.86% 使用 yarn add vite-plugin-vu ...

  5. form中动态生成Radiobutton控件

    public partial class GetLabelFields : Form { int tableCount; public GetLabelFields(AxMapControl axma ...

  6. 解决 Vue 动态生成 el-checkbox 点击无法赋值问题

    博客地址:https://ainyi.com/68 最近遇到一个问题,在一个页面需要动态渲染页面内的表单,其中包括 checkbox 表单类型,并且使用 Element 组件 UI 时,此时 v-mo ...

  7. 打造自己的Vue组件文档生成工具

    程序员最讨厌的两件事情,第一种是写文档,另一种是别人没有写文档.有没有直接根据vue组件生成文档的呢?当然是有的的.但第三方使用起来不一定能和现有项目结合使用,往往需要额外的注释用来标记提取信息.使用 ...

  8. 使用VUE组件创建SpreadJS自定义单元格(一)

    作为近五年都冲在热门框架排行榜首的Vue,大家一定会学到的一部分就是组件的使用.前端开发的模块化,可以让代码逻辑更加简单清晰,项目的扩展性大大加强.对于Vue而言,模块化的体现集中在组件之上,以组件为 ...

  9. 使用VUE组件创建SpreadJS自定义单元格(二)

    在上篇中,我们介绍了如何通过设置runtimeCompiler为true,在Vue中实现了动态创建电子表格组件.想了解具体内容可看点击查看使用VUE组件创建SpreadJS自定义单元格(一). 但是在 ...

随机推荐

  1. 将 Android* Bullet 物理引擎移植至英特尔&#174; 架构

    简单介绍 因为眼下的移动设备上可以使用更高的计算性能.移动游戏如今也可以提供震撼的画面和真实物理(realistic physics). 枪战游戏中的手雷爆炸效果和赛车模拟器中的汽车漂移效果等便是由物 ...

  2. GNU-libiconv编码转换库的使用举例

    继GDAL库.PROJ库.HDF5库.TINYXML库之后,手上进行的项目又让我碰到了ICONV库.之前花了2天时间没有搞定,在甲方一直催促下,今天又捡起来搞搞,搞了一天最终搞定了.相关心得记录例如以 ...

  3. 纳德拉再造微软:市值如何重回第一阵营(思维确实变了,不再是以windows为中心,拥抱其它各种平台,敢在主战场之外找到适合自己的新战场)

    有人说,现在的美国硅谷充满了“咖喱味”.也有人说,硅谷已经变成“印度谷”.原因就在于,以微软CEO萨提亚·纳德拉.谷歌CEO桑达尔·皮查伊为代表的印度人,近年以来掌控了全世界最令人望而生畏的科技巨头. ...

  4. django uWSGI nginx搭建一个web服务器 确定可用

    网上的找了很多篇 不知道为什么不行,于是自己搭建了一个可用的Web 大家可按步骤尝试 总结下基于uwsgi+Nginx下django项目生产环境的部署 准备条件: .确保有一个能够用runserver ...

  5. Traversing a list

    The most common way to traverse the elements of a list is with a for loop. The syntax is the same as ...

  6. Nginx搭建图片服务器

    Nginx搭建图片服务器 标签(空格分隔): linux,nginx Nginx常用命令 ./nginx 启动 ./nginx -s reload 重载配置文件 ./nginx -s stop|sta ...

  7. java9新特性-1-概述

    经过4次跳票,历经曲折的java 9 终于终于在2017年9月21日发布.       2.哪些人适合看这套视频? 已经熟悉或熟练运用java 8 及 之前 java 版本的开发人员.科研人员.学生及 ...

  8. XML字符串解析实体类方法

    /// <summary> /// XML字符串解析实体类方法 /// </summary> public class StringXML { public StringXML ...

  9. Spring mvc 启动 和 请求分发

    Spring mvc 启动 和 请求分发 启动加载: abstract class HttpServletBean extends HttpServlet void init() initServle ...

  10. Studio3T 破解,无需命令计划任务

    最近项目中使用到了MongoDB,苦于命令行不好操作,所以就寻觅了一下MongDB的GUI管理工具,最终找到了Studio3T,功能非常强大,但是苦于只有评估版本30天,最可气的是一时手贱,修改了系统 ...