使用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 相关文章推荐
javascript 面向对象编程  function是方法(函数)
Sep 17 Javascript
Javascript document.referrer判断访客来源网址
May 15 Javascript
JavaScript取得鼠标绝对位置程序代码介绍
Sep 16 Javascript
javascript将浮点数转换成整数的三个方法
Jun 23 Javascript
使用不同的方法结合/合并两个JS数组
Sep 18 Javascript
浅谈Javascript数据属性与访问器属性
Jul 26 Javascript
js实现文字超出部分用省略号代替实例代码
Sep 01 Javascript
Vue-CLI3.x 设置反向代理的方法
Dec 06 Javascript
Vue表情输入组件 微信face表情组件
Feb 11 Javascript
vue中引入mxGraph的步骤详解
May 17 Javascript
浅谈Vue为什么不能检测数组变动
Oct 14 Javascript
JS实现纸牌发牌动画
Jan 19 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
深入php list()函数的详解
2013/06/05 PHP
thinkphp模板赋值与替换实例简述
2014/11/24 PHP
实例讲解PHP验证邮箱是否合格
2019/01/28 PHP
PHP使用CURL实现下载文件功能示例
2019/06/03 PHP
jquery链式操作的正确使用方法
2014/01/06 Javascript
调试JavaScript中正则表达式中遇到的问题
2015/01/27 Javascript
JavaScript实现的一个倒计时的类
2015/03/12 Javascript
JS获取数组最大值、最小值及长度的方法
2015/11/24 Javascript
JS组件中bootstrap multiselect两大组件较量
2016/01/26 Javascript
javascript HTML5 Canvas实现圆盘抽奖功能
2016/04/11 Javascript
深入解析Backbone.js框架的依赖库Underscore.js的作用
2016/05/07 Javascript
AngularJS 表达式详解及实例代码
2016/09/14 Javascript
使用Angular缓存父页面数据的方法
2017/01/03 Javascript
EasyUi 打开对话框后控件赋值及赋值后不显示的问题解决办法
2017/01/19 Javascript
完美解决axios跨域请求出错的问题
2018/02/05 Javascript
JavaScript中严格判断NaN的方法
2018/02/16 Javascript
VUE项目初建和常见问题总结
2019/09/12 Javascript
JavaScript console的使用方法实例分析
2020/04/28 Javascript
python网络编程之TCP通信实例和socketserver框架使用例子
2014/04/25 Python
Python 常用string函数详解
2016/05/30 Python
python抓取搜狗微信公众号文章
2019/04/01 Python
python图像处理模块Pillow的学习详解
2019/10/09 Python
使用keras实现BiLSTM+CNN+CRF文字标记NER
2020/06/29 Python
matplotlib.pyplot.plot()参数使用详解
2020/07/28 Python
python中的split、rsplit、splitlines用法说明
2020/10/23 Python
德国高性价比网上药店:medpex
2017/07/09 全球购物
Speedo澳大利亚官网:全球领先游泳品牌
2018/02/04 全球购物
销售行业个人求职自荐信
2013/09/25 职场文书
环境卫生倡议书
2014/08/29 职场文书
学用政策心得体会
2014/09/10 职场文书
公司放假通知怎么写
2015/04/15 职场文书
2015年国庆节新闻稿
2015/07/18 职场文书
素质教育培训心得体会
2016/01/19 职场文书
读《儒林外史》有感:少一些功利,多一些真诚
2020/01/19 职场文书
小程序wx.getUserProfile接口的具体使用
2021/06/02 Javascript
关于Oracle12C默认用户名system密码不正确的解决方案
2021/10/16 Oracle