使用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 相关文章推荐
js对象的复制继承实例
Jan 10 Javascript
js控住DOM实现发布微博效果
Aug 30 Javascript
jquery网页日历显示控件calendar3.1使用详解
Nov 24 Javascript
ajax级联菜单实现方法实例分析
Nov 28 Javascript
jQuery实现倒计时功能 jQuery实现计时器功能
Sep 19 jQuery
node 利用进程通信实现Cluster共享内存
Oct 27 Javascript
最适应的vue.js的form提交涉及多种插件【推荐】
Aug 27 Javascript
vue从一个页面跳转到另一个页面并携带参数的解决方法
Aug 12 Javascript
Layui数据表格跳转到指定页的实现方法
Sep 05 Javascript
解决antd datepicker 获取时间默认少8个小时的问题
Oct 29 Javascript
element-ui中el-upload多文件一次性上传的实现
Dec 02 Javascript
Javascript使用integrity属性进行安全验证
Nov 07 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
根德YB400的电路分析
2021/03/02 无线电
PHP防盗链的基本思想 防盗链的设置方法
2015/09/25 PHP
Laravel 实现Eloquent模型分组查询并返回每个分组的数量 groupBy()
2019/10/23 PHP
JavaScript 原型继承之构造函数继承
2011/08/26 Javascript
创建公共调用 jQuery Ajax 带返回值
2012/08/01 Javascript
node.js操作mongoDB数据库示例分享
2014/11/26 Javascript
JS实现从网页顶部掉下弹出层效果的方法
2015/08/06 Javascript
Javascript 实现全屏滚动实例代码
2016/12/31 Javascript
手机端js和html5刮刮卡效果
2020/09/29 Javascript
Angular客户端请求Rest服务跨域问题的解决方法
2017/09/19 Javascript
微信小程序loading组件显示载入动画用法示例【附源码下载】
2017/12/09 Javascript
vue源码入口文件分析(推荐)
2018/01/30 Javascript
详解小程序缓存插件(mrc)
2018/08/17 Javascript
Vue.js实现开发购物车功能的方法详解
2019/02/22 Javascript
JavaScript中AOP的实现与应用
2019/05/06 Javascript
javascript获取元素的计算样式
2019/05/24 Javascript
nodemon实现Typescript项目热更新的示例代码
2019/11/19 Javascript
JavaScript中如何对多维数组(矩阵)去重的实现
2019/12/04 Javascript
javascript中的offsetWidth、clientWidth、innerWidth及相关属性方法
2020/05/14 Javascript
处理JavaScript值为undefined的7个小技巧
2020/07/28 Javascript
vant picker+popup 自定义三级联动案例
2020/11/04 Javascript
Python中的列表知识点汇总
2015/04/14 Python
Python使用urllib2模块抓取HTML页面资源的实例分享
2016/05/03 Python
python中不能连接超时的问题及解决方法
2018/06/10 Python
Tensorflow中使用tfrecord方式读取数据的方法
2018/06/19 Python
python读取图片并修改格式与大小的方法
2018/07/24 Python
树莓派实现移动拍照
2019/06/22 Python
Python3网络爬虫开发实战之极验滑动验证码的识别
2019/08/02 Python
韩国三星集团旗下时尚品牌官网:SSF SHOP
2016/08/02 全球购物
Volcom法国官网:美国冲浪滑板品牌
2017/05/25 全球购物
法拉利英国精品店:Ferraris Boutique UK
2019/07/20 全球购物
统计每一学生的平均成绩
2014/06/06 面试题
老师自我鉴定范文
2013/12/25 职场文书
员工年度工作总结2015
2015/05/18 职场文书
《从现在开始》教学反思
2016/02/16 职场文书
PostGIS的安装与入门使用指南
2022/01/18 PostgreSQL