使用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 Firefox3.5中操作select的问题
Jul 10 Javascript
深入理解Javascript闭包 新手版
Dec 28 Javascript
js 回车提交表单两种实现方法
Dec 31 Javascript
js获取dom的高度和宽度(可见区域及部分等等)
Jun 13 Javascript
使用GruntJS链接与压缩多个JavaScript文件过程详解
Aug 02 Javascript
用Jquery实现滚动新闻
Feb 12 Javascript
node.js中的emitter.emit方法使用说明
Dec 10 Javascript
js实现精确到秒的倒计时效果
May 29 Javascript
JavaScript基础——使用Canvas绘图
Nov 02 Javascript
Bootstrap Modal遮罩弹出层代码分享
Nov 21 Javascript
vue组件name的作用小结
May 23 Javascript
解决node终端下运行js文件不支持ES6语法
Apr 04 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 分页分组类
2009/12/10 PHP
php删除txt文件指定行及按行读取txt文档数据的方法
2017/01/30 PHP
php查询及多条件查询
2017/02/26 PHP
NodeJS 模块开发及发布详解分享
2012/03/07 NodeJs
jQueryUI写一个调整分类的拖放效果实现代码
2012/05/10 Javascript
jQuery的attr与prop使用介绍
2013/10/10 Javascript
在javaScript中关于submit和button的区别介绍
2013/10/20 Javascript
Node.js中使用socket创建私聊和公聊聊天室
2015/11/19 Javascript
jquery实现一个简单的表单验证实例
2016/03/30 Javascript
全面解析DOM操作和jQuery实现选项移动操作代码分享
2016/06/07 Javascript
AngularJS用户选择器指令实例分析
2016/11/04 Javascript
js通过classname来获取元素的方法
2016/11/24 Javascript
详解js几个绕不开的事件兼容写法
2017/08/30 Javascript
详解nodeJs文件系统(fs)与流(stream)
2018/01/24 NodeJs
vue.js中实现登录控制的方法示例
2018/04/23 Javascript
详解vue+webpack+express中间件接口使用
2018/07/17 Javascript
element ui table 增加筛选的方法示例
2018/11/02 Javascript
layUI实现三级导航菜单效果
2019/07/26 Javascript
Layui实现数据表格默认全部显示(不要分页)
2019/10/26 Javascript
Vue使用预渲染代替SSR的方法
2020/07/02 Javascript
vue-cli3项目打包后自动化部署到服务器的方法
2020/09/16 Javascript
[07:08]2014DOTA2西雅图国际邀请赛 小组赛7月11日TOPPLAY
2014/07/11 DOTA
[00:56]2014DOTA2国际邀请赛 DK、iG 赛前探访
2014/07/10 DOTA
解析Python中的生成器及其与迭代器的差异
2016/06/20 Python
python编程之requests在网络请求中添加cookies参数方法详解
2017/10/25 Python
动态规划之矩阵连乘问题Python实现方法
2017/11/27 Python
python读取目录下最新的文件夹方法
2018/12/24 Python
TensorFlow实现批量归一化操作的示例
2020/04/22 Python
HTML5移动端手机网站开发流程
2016/04/25 HTML / CSS
美国在线和移动免费会员制批发零售商:Boxed(移动端的Costco)
2020/01/02 全球购物
医学专业五年以上个人求职信
2013/12/03 职场文书
创先争优制度
2014/01/21 职场文书
公司承诺书范文
2014/05/19 职场文书
安全宣传标语口号
2014/06/06 职场文书
python调试工具Birdseye的使用教程
2021/05/25 Python
面试被问select......for update会锁表还是锁行
2021/11/11 MySQL