這期內容當中小編將會給大家帶來有關vue中怎么實現一個自動化表單,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
通過json配置快速生成表單的vue plugin。
設計目標
減少html 重復片段
表單字段組件可擴展
事件、聯動通過eventbus 解耦
校驗可擴展
表單布局可自定義
可視化配置
大概方案設計
使用
安裝
npm install charlie-autoform charlie-autoform_component_lib
源碼:https://charlielau.github.io/autoform/#/component/autoform
引入插件
import AutoForm from 'charlie-autoform'; import AutoForm_component_lib from 'charlie-autoform_component_lib'; Vue.use(AutoForm); Vue.use(AutoForm_component_lib);
基本使用
demo.vue
<template> <div> <auto-form ref="tagForm1" :model="model1" :fields="fields1" :layout="layout"> <el-form-item class="clearfix"> <el-button type="primary">立即創建</el-button> <el-button>取消</el-button> </el-form-item> </auto-form> </div> </template> <script> export default { data() { return { model2: { name: '', type: [] }, layout2: { align: 'left', labelWidth: '100px', custom: false, //是否自定義布局 inline: true //是否內聯 }, fields2: [ { key: 'name', type: 'input', templateOptions: { label: '審批人' } }, { key: 'region', type: 'select', templateOptions: { label: '活動區域', placeholder: '請選擇活動區域', options: [ { label: '區域一', value: 'shanghai' }, { label: '區域二', value: 'beijing' } ], validators:[ //校驗 // {required:true,message:'必填'} // "" ] } } ] }; } }; </script>
最終效果
添加自定義組件或者組件目錄
Vue.$autoform.RegisterDir(()=>require.context('./components/autoform', 'c'));//目錄 Vue.$autoform.Register(Vue,[Components...],{prefix: "c"}) //組件對象
cHello.vue
// PATH:/components/autoform/cHello.vue <template> <div> <div> <p>基本的變量可以通過"mixins"獲取,這里有開發組件需要的一些變量</p> <p>自定義子組件:Hello</p> <p>當前field: {{field}}</p> <p>整個model: {{model}}</p> <p>當前model: {{model[field.name]}}</p> <p>layout: {{layout}}</p> <p>字段相關配置to: {{to}}</p> </div> </div> </template> <script> import {baseField} from "charlie-autoform"; export default { mixins: [baseField], name: 'cHello', data () { return {}; }, methods: {}, mounted(){ //this.eventBus 事件總線 } }; </script>
上述就是小編為大家分享的vue中怎么實現一個自動化表單了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。