如何生成vue自定义组件和嵌套表单组件
本篇内容介绍了“如何生成vue自定义组件和嵌套表单组件”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
使用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;
示例
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;
为什么要使用Vue
Vue是一款友好的、多用途且高性能的JavaScript框架,使用vue可以创建可维护性和可测试性更强的代码库,Vue允许可以将一个网页分割成可复用的组件,每个组件都包含属于自己的HTML、CSS、JavaScript,以用来渲染网页中相应的地方,所以越来越多的前端开发者使用vue。
“如何生成vue自定义组件和嵌套表单组件”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341