使用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 相关文章推荐
jQuery的.live()和.die() 使用介绍
Sep 10 Javascript
jquery动态改变onclick属性导致失效的问题解决方法
Dec 04 Javascript
jQuery中:empty选择器用法实例
Dec 30 Javascript
Backbone.js框架中简单的View视图编写学习笔记
Feb 14 Javascript
微信小程序 form组件详解
Oct 25 Javascript
AngularJS中一般函数参数传递用法分析
Nov 22 Javascript
JavaScript的继承实现小结
May 07 Javascript
webpack处理 css\less\sass 样式的方法
Aug 21 Javascript
ReactNative实现Toast的示例
Dec 31 Javascript
vue的style绑定background-image的方式和其他变量数据的区别详解
Sep 03 Javascript
AngularJS实现的自定义过滤器简单示例
Feb 02 Javascript
使用vue制作滑动标签
Sep 21 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
header()函数使用说明
2006/11/23 PHP
php通过ajax实现双击table修改内容
2014/04/28 PHP
PHP实现阳历到农历转换的类实例
2015/03/07 PHP
PHP配置把错误日志以邮件方式发送方法(Windows系统)
2015/06/23 PHP
PHP实现简单搜歌的方法
2015/07/28 PHP
微信公众号支付之坑:调用支付jsapi缺少参数 timeStamp等错误解决方法
2016/01/12 PHP
PHP实现的微信APP支付功能示例【基于TP5框架】
2019/09/16 PHP
当鼠标滑过文本框自动选中输入框内容的JS代码分享
2013/11/26 Javascript
js验证电话号码与手机支持+86的正则表达式
2014/01/23 Javascript
Jquery创建层显示标题和内容且随鼠标移动而移动
2014/01/26 Javascript
PhantomJS快速入门教程(服务器端的 JavaScript API 的 WebKit)
2015/08/06 Javascript
教你JS中的运算符乘方、开方及变量格式转换
2016/08/09 Javascript
JavaScript动态数量的文件上传控件
2016/11/18 Javascript
Angular.js中数组操作的方法教程
2017/07/31 Javascript
input file样式修改以及图片预览删除功能详细概括(推荐)
2017/08/17 Javascript
vue 中动态绑定class 和 style的方法代码详解
2018/06/01 Javascript
vue ssr 指南详读
2018/06/29 Javascript
vue draggable resizable gorkys与v-chart使用与总结
2019/09/05 Javascript
Vue 自定义标签的src属性不能使用相对路径的解决
2019/09/17 Javascript
js 递归json树实现根据子id查父id的方法分析
2019/11/08 Javascript
[02:28]DOTA2亚洲邀请赛 LGD战队巡礼
2015/02/03 DOTA
深入解析Python中的线程同步方法
2016/06/14 Python
对numpy中轴与维度的理解
2018/04/18 Python
python3连接MySQL数据库实例详解
2018/05/24 Python
pycharm: 恢复(reset) 误删文件的方法
2018/10/22 Python
Python2和Python3.6环境解决共存问题
2018/11/09 Python
Django中的AutoField字段使用
2020/05/18 Python
html2canvas截图空白问题的解决
2020/03/24 HTML / CSS
Html5踩坑记之mandMobile使用小记
2020/04/02 HTML / CSS
2014年五四青年节演讲比赛方案
2014/04/22 职场文书
村委会换届选举方案
2014/05/03 职场文书
县政府办公室领导班子对照检查材料思想汇报
2014/09/28 职场文书
本科毕业论文指导教师评语
2014/12/30 职场文书
2019年大学推荐信
2019/06/24 职场文书
python数据库批量插入数据的实现(executemany的使用)
2021/04/30 Python
使用Apache Camel表达REST服务的方法
2022/06/10 Servers