使用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类库Bindows1.3中的内存释放方式分析
Mar 08 Javascript
提高网站性能之 如何对待JavaScript
Oct 31 Javascript
JQuery给元素添加/删除节点比如select
Apr 02 Javascript
js innerHTML 改变div内容的方法
Aug 03 Javascript
node.js入门实例helloworld详解
Dec 23 Javascript
基于RequireJS和JQuery的模块化编程——常见问题全面解析
Apr 14 Javascript
JS数组排序方法实例分析
Dec 16 Javascript
微信小程序中做用户登录与登录态维护的实现详解
May 17 Javascript
解决Angular4项目部署到服务器上刷新404的问题
Aug 31 Javascript
JS 获取文件后缀,判断文件类型(比如是否为图片格式)
May 09 Javascript
JavaScript中使用Spread运算符的八种方法总结
Jun 18 Javascript
javascript的hashCode函数实现代码小结
Aug 11 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中将网址转换为超链接的函数
2011/09/02 PHP
PHP判断是否为空的几个函数对比
2015/04/21 PHP
PHP QRCODE生成彩色二维码的方法
2016/05/19 PHP
PHP PDOStatement::errorInfo讲解
2019/01/31 PHP
Laravel路由研究之domain解决多域名问题的方法示例
2019/04/04 PHP
Laravel5.1 框架Middleware中间件基本用法实例分析
2020/01/04 PHP
PHP http请求超时问题解决方案
2020/11/13 PHP
javascript中的有名函数和无名函数
2007/10/17 Javascript
js动态创建上传表单通过iframe模拟Ajax实现无刷新
2014/02/20 Javascript
jQuery取消ajax请求的方法
2015/06/09 Javascript
AngularJS入门教程之 XMLHttpRequest实例讲解
2016/07/27 Javascript
基于js对象,操作属性、方法详解
2016/08/11 Javascript
解决Vue2.0自带浏览器里无法打开的原因(兼容处理)
2017/07/28 Javascript
Vue框架中正确引入JS库的方法介绍
2017/07/30 Javascript
Nodejs 复制文件/文件夹的方法
2017/08/24 NodeJs
Angular实现的简单查询天气预报功能示例
2017/12/27 Javascript
Nodejs使用Mongodb存储与提供后端CRD服务详解
2018/09/04 NodeJs
Vue封装全局过滤器Filters的步骤
2020/09/16 Javascript
python多重继承新算法C3介绍
2014/09/28 Python
Scrapy-Redis结合POST请求获取数据的方法示例
2019/05/07 Python
浅谈Pytorch中的torch.gather函数的含义
2019/08/18 Python
浅析Python+OpenCV使用摄像头追踪人脸面部血液变化实现脉搏评估
2019/10/17 Python
django数据模型(Model)的字段类型解析
2019/12/25 Python
python通过opencv实现图片裁剪原理解析
2020/01/19 Python
Python实现上下文管理器的方法
2020/08/07 Python
波兰最大的度假胜地和城市公寓租赁运营商:Sun & Snow
2018/10/18 全球购物
英文简历自荐信范文
2013/12/11 职场文书
2014的自我评价
2014/01/13 职场文书
旺仔牛奶广告词
2014/03/20 职场文书
工伤赔偿协议书
2014/04/15 职场文书
商场周年庆活动方案
2014/08/19 职场文书
南京导游词
2015/02/03 职场文书
倡议书的格式写法
2015/04/28 职场文书
2016年10月份红领巾广播稿
2015/12/21 职场文书
Html5生成验证码的示例代码
2021/05/10 Javascript
Java中使用Filter过滤器的方法
2021/06/28 Java/Android