使用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 轻松支持函数重载 (Part 1 - 设计)
Aug 04 Javascript
JS特效实现图片自动播放并可控的效果
Jul 31 Javascript
jquery mobile开发常见问题分析
Jan 21 Javascript
Listloading.js移动端上拉下拉刷新组件
Aug 04 Javascript
Bootstrap modal 多弹窗之叠加关闭阴影遮罩问题的解决方法
Feb 27 Javascript
Bootstrap的popover(弹出框)在append后弹不出(失效)
Feb 27 Javascript
详解vue.js全局组件和局部组件
Apr 10 Javascript
Vue原理剖析 实现双向绑定MVVM
May 03 Javascript
zTree异步加载展开第一级节点的实现方法
Sep 05 Javascript
canvas基础绘制-绚丽倒计时的实例
Sep 17 Javascript
聊聊Vue中provide/inject的应用详解
Nov 10 Javascript
vue+elementUI实现表格列的显示与隐藏
Apr 13 Vue.js
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
Laravel基础-关于引入公共文件的两种方式
2019/10/18 PHP
xml转json的js代码
2012/08/28 Javascript
js进行表单验证实例分析
2015/02/10 Javascript
JavaScript实现动态添加,删除行的方法实例详解
2015/07/02 Javascript
jQuery+PHP+MySQL实现无限级联下拉框效果
2016/02/19 Javascript
微信小程序图片横向左右滑动案例
2017/05/19 Javascript
node.js的exports、module.exports与ES6的export、export default深入详解
2017/10/26 Javascript
详解Vue如何支持JSX语法
2017/11/10 Javascript
angular json对象push到数组中的方法
2018/02/27 Javascript
vue 全局环境切换问题
2019/10/27 Javascript
vant-ui框架的一个bug(解决切换后onload不触发)
2020/11/11 Javascript
JavaScript如何实现防止重复的网络请求的示例
2021/01/28 Javascript
[01:01:14]完美世界DOTA2联赛PWL S2 SZ vs Rebirth 第一场 11.21
2020/11/23 DOTA
Python通过解析网页实现看报程序的方法
2014/08/04 Python
Python with用法实例
2015/04/14 Python
python通过加号运算符操作列表的方法
2015/07/28 Python
TensorFlow实现RNN循环神经网络
2018/02/28 Python
python字典快速保存于读取的方法
2018/03/23 Python
python使用代理ip访问网站的实例
2018/05/07 Python
Tensorflow使用tfrecord输入数据格式
2018/06/19 Python
浅谈Django中view对数据库的调用方法
2019/07/18 Python
django有外键关系的两张表如何相互查找
2020/02/10 Python
解决pycharm导入numpy包的和使用时报错:RuntimeError: The current Numpy installation (‘D:\\python3.6\\lib\\site-packa的问题
2020/12/08 Python
python opencv肤色检测的实现示例
2020/12/21 Python
解决pycharm 格式报错tabs和space不一致问题
2021/02/26 Python
水果超市创业计划书
2014/01/27 职场文书
科级干部群众路线教育实践活动对照检查材料思想汇报
2014/09/20 职场文书
四风问题个人对照检查材料
2014/09/26 职场文书
机关作风建设自查报告
2014/10/22 职场文书
写景作文评语集锦
2014/12/25 职场文书
中英文求职信范文
2015/03/19 职场文书
农民工工资支付承诺书
2015/05/04 职场文书
Nginx tp3.2.3 404问题解决方案
2021/03/31 Servers
CSS3 天气图标动画效果
2021/04/06 HTML / CSS
MySQL里面的子查询的基本使用
2021/08/02 MySQL
Mysql 8.x 创建用户以及授予权限的操作记录
2022/04/18 MySQL