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


Posted in Javascript onJanuary 18, 2019

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

[github]| [说明文档]

maker.create

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

生成

Maker

let rule = [
 formCreate.maker.create('i-button').props({
  type:'primary',
  field:'btn'
  loading:true
 })
]
$f = formCreate.create(rule);

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

Json

let rule = [
 {
  type:'i-button',
  field:'btn'
  props:{
    type:'primary',
    field:'btn',
    loading:true
  }
 }
]
$f = formCreate.create(rule);

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

修改

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

通过rule修改组件生成规则

rule[0].props.loading = false;

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

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

示例

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

let rule = [
 {
  type:'row',
  children:[
   {
    type:'i-col',
    props:{
     span:12
    },
    children:[
     formCreate.maker.input('商品名称','goods_name','iphone'),
     formCreate.maker.number('商品加个','goods_price',8688)
    ]
   },
   {
    type:'i-col',
    props:{
     span:12
    },
    children:[
     formCreate.maker.dateTime('创建时间','create_at'),
     formCreate.maker.radio('是否显示','is_show').options([
      {value:1,label:'显示'},
      {value:0,label:'不显示'}
     ])
    ]
   }
  ]
 }
]

maker.template

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

生成

Maker

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

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

Json

let rule = [
 {
  type:'template',
  template:'<i-button :loading="loading">{{text}}<i-button>',
  vm:new Vue({
   data:{
    loading:true,
    text:'正在加载中'
   }
  })
 }
]
$f = formCreate.create(rule);

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

修改

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

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

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

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

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
列表内容的选择
Jun 30 Javascript
使用JQuery和s3captche实现一个水果名字的验证
Aug 14 Javascript
解决jquery异步按一定的时间间隔刷新问题
Dec 10 Javascript
Jquery UI震动效果实现原理及步骤
Feb 04 Javascript
获取内联和链接中的样式(js代码)
Apr 11 Javascript
绑定回车enter事件代码
May 18 Javascript
JS使用JSON作为参数实例分析
Jun 23 Javascript
判断数组的最佳方法(推荐)
Oct 11 Javascript
Javascript中字符串相关常用的使用方法总结
Mar 13 Javascript
vue项目实现github在线预览功能
Jun 20 Javascript
JavaScript变量提升和严格模式实例分析
Jan 27 Javascript
Node.js API详解之 console模块用法详解
May 12 Javascript
jquery层次选择器的介绍
Jan 18 #jQuery
js实现图片放大并跟随鼠标移动特效
Jan 18 #Javascript
vue.js的双向数据绑定Object.defineProperty方法的神奇之处
Jan 18 #Javascript
jQuery无冲突模式详解
Jan 17 #jQuery
JQuery判断radio单选框是否选中并获取值的方法
Jan 17 #jQuery
React性能优化系列之减少props改变的实现方法
Jan 17 #Javascript
vue 项目接口管理的实现
Jan 17 #Javascript
You might like
星际争霸任务指南——神族
2020/03/04 星际争霸
约瑟夫环问题的PHP实现 使用PHP数组内部指针操作函数
2010/10/12 PHP
thinkphp中session和cookie无效的解决方法
2014/12/19 PHP
PHP获取数组长度或某个值出现次数的方法
2015/02/11 PHP
Jquery 基础学习笔记之文档处理
2009/05/29 Javascript
探讨在JQuery和Js中,如何让ajax执行完后再继续往下执行
2013/07/09 Javascript
js登录弹出层特效
2014/03/07 Javascript
Nodejs学习笔记之测试驱动
2015/04/16 NodeJs
js实现大转盘抽奖游戏实例
2015/06/24 Javascript
基于jquery实现智能表单验证操作
2016/05/09 Javascript
Node.js Express 框架 POST方法详解
2017/01/23 Javascript
js 中rewrap-ajax.js插件实例代码
2017/10/20 Javascript
vue中如何动态绑定图片,vue中通过data返回图片路径的方法
2018/02/07 Javascript
Vue实现动态添加或者删除对象和对象数组的操作方法
2018/09/21 Javascript
turn.js异步加载实现翻书效果
2019/07/25 Javascript
jquery制作的移动端购物车效果完整示例
2020/02/24 jQuery
jQuery实现高度灵活的表单验证功能示例【无UI】
2020/04/30 jQuery
[45:56]Ti4正赛第一天 VG vs NEWBEE 3
2014/07/19 DOTA
Python实现的最近最少使用算法
2015/07/10 Python
Python根据已知邻接矩阵绘制无向图操作示例
2018/06/23 Python
关于Numpy中的行向量和列向量详解
2019/11/30 Python
解决Python3.8运行tornado项目报NotImplementedError错误
2020/09/02 Python
HTML中meta标签及Keywords
2020/04/15 HTML / CSS
LivingSocial爱尔兰:爱尔兰本地优惠
2018/08/10 全球购物
牧马人澳大利亚官网:Wrangler澳大利亚
2019/10/08 全球购物
优秀毕业生自我鉴定
2014/01/19 职场文书
医疗器械售后服务承诺书
2014/05/21 职场文书
项目工作说明书
2014/07/29 职场文书
不听老师话的万能检讨书
2014/10/04 职场文书
批评与自我批评范文
2014/10/15 职场文书
2015年信息宣传工作总结
2015/05/26 职场文书
2016年父亲节寄语
2015/12/04 职场文书
《一面五星红旗》教学反思
2016/02/23 职场文书
PyMongo 查询数据的实现
2021/06/28 Python
漫画「日和酱的要求是绝对的」第3卷封面公开
2022/03/21 日漫
vue elementUI批量上传文件
2022/04/26 Vue.js